Add support for git-svn --dry-run in magit-svn

This pull request adds support for the --dry-run switch (-n) in git-svn rebase, dcommit, branch and tag commands. Branching and tagging against a svn repo are one of those somewhat infrequent operations which you _really_ want to get right the first time.

The --dry-run switch allows us to check the magit-process buffer and catch common mistakes when dealing with these commands.

In order to reuse the existing key-mode handling for switches and magit-custom-options, all interactive commands were refactored to use magit-define-command like the rest of magit.

I'm still not done testing the code, comments and feedback welcome!