Allowing to select the remote and the branch pulling from.

This is a first stab at fixing issue #435.
Fixed a few typos.
Add ERT as git submodule
Add mocker.el as git submodule
Add tests/run-test.el
Use tests/run-test.el from Makefile
Add .travis.yml
Removed an unused `format`.
Placed the options in the right place for `pull`.

Copying the code from `magit-push` was not possible because `magit-pull` is less flexible with its options.
For `magit-push` the options can be passed after the `repository` and the `refspec`.
However, at least for `--rebase`, `magit-pull` does not accept this format.
Fix incorrect cursor location in magit-key-mode

After setting an argument value, point would be in the wrong spot. Fix
this by saving which option point is at before redrawing, then jumping
to that option after redrawing. Add a new function
magit-key-mode-build-exec-point-alist to help with this.
Add git svn tag command
Add dynamic options for branch manager
Fix magit-create-branch
Pass git options to branch manager

Without this change, newly added options are not functional.
Add more shortcut options to branching menu
Use magit-read-rev-with-default as much as possible
Use -m/-M instead of -mh/-mm
Remove duplicated definition of magit-key-mode-current-args
Remove duplicated definition of magit-key-mode-current-options
Add git svn tag command