Differences between project name and unixname
Say you wrote a program called "Zaurus Robot Manager". The project name would be "Zaurus Robot Manager", while the unixname would be something like "zaurus_robot_manager". It's the name of the file under *nix; without any symbols and such.
Branches
Branches are just an extension to versions. For example, in Zaurus Robot Manager we have a stable version that we've released that runs great. We just made a new version, but it's not as stable. We still want people to test it out, so we create a new branch called "Unstable" and release it in there. When a new user goes to download your program and they're not a developer, they'll go for the Stable branch as opposed to Unstable.
I've used it when developing on Sourceforge and it works out pretty good