Allowing to select the remote and the branch pulling from.

This is a first stab at fixing issue #435.
Fixed a few typos.
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 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
stage all changes by pressing "s" while on a header
s/u on headers functionality
Add author and date to log
Fix long log format
Add support for git-grep command.

Signed-off-by: Sébastien Gross <seb•ɑƬ•chezwam•ɖɵʈ•org>
grep is only required at compile time.

Signed-off-by: Sébastien Gross <seb•ɑƬ•chezwam•ɖɵʈ•org>
magit-key-mode.el: cleanup doc-strings

Mostly just put the first sentence on the first line.  In many cases
this only required changes to punctuation; some cases required bigger
changes.