Subparser refactor

I refactored the argument parser to use sub-parser for the sub-commands. Now when you use twine -h it tells you about the separate commands. Just for an example I added the register command as a second command to show how the sub-parser can dispatch to separate functions. I also added it as a second command because I ran into problems with this while trying to use twine for the first time. And I see there is another issue already created to add it so maybe this will be the impetus to do so :)

I added a parent parser for shared commands such as --user --password --repository as well. This shows how you can save yourself from writing duplicate argument definitions.

I didn't know the intent behind the twine-upload entry point so I removed it as you can no longer call that module direction. There is probably a way to make that happen if need be, but I figured I would remove it for the time being.

I'm happy to refine this and keep working on it, but wanted to get your opinion on the matter before I pursue this goal any further.

Thanks!