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
Make magit-ediff-restore work when there is several diff open at once.

We use local-variable set in the ediff control buffer by the
startup-hook, and the ediff-cleanup-hook in place of ediff-quit-hook.
Added one forgotten startup-hook in magit-ediff*
When merging conflict, use ediff handling of merged file
When solving conflict, ask ediff to look only at conflicting part of files
In magit-show, save file-name and version of the shown file
An interactive function to save current buffer as content of the index
in magit-ediff-restore, before killing the index, offer to stage it
Add my copyright
Add dynamic options for branch manager