Provide autoloads for `magit-key-mode-popup-*` family of functions
magit-define-section-jumper: teach created functions how to expand

Functions created with macro `magit-define-section-jumper' now take an
optional EXPAND argument, interactively a prefix argument can be used.
When that is non-nil, the section being jumped to is also expanded.
magit-commit: tell magit-jump-to-staged to also expand

In `magit-commit' tell `magit-jump-to-staged' to also expand,
instead of doing it lexically within the former.
add function magit-commit-maybe-expand

Add function `magit-commit-maybe-expand' and use it in `magit-commit'.
magit-commit-maybe-expand: add argument to allow expanding unstaged
add function magit-commit-assert

Add function `magit-commit-assert' and remove the sanity checks and
alternative exit points previously located in `magit-commit' there.

It returns either the arguments, or `t' if their are no arguments to
tell the caller to actually perform the commit.  For that reason
`magit-commit-internal' has to be taught that its ARGS being `t' now
means 'no arguments'.

New exit points will appear soon and that will make it hard to add
extend these checks and alternative code paths without resorting to
things like `return'.  This is the best alternative could see,
considering new commands will be created soon, that need the same
checks.
add option magit-commit-ask-to-stage

Add option `magit-commit-ask-to-stage'.  If it is non-nil and nothing
is staged then `magit-commit-assert' expands the unstaged changes.

This partially restores a similar feature that was available before the
switch to `git-commit-mode', and also extends it.  It is now less
flexible in that it is a simple boolean.  On the other hand it shows
the unstaged changes to the user, making it easier for him to make up
his mind.
magit-mark-commit: run new magit-mark-commit-hook

In `magit-mark-commit run the new hook `magit-mark-commit-hook'.
Do not explicitly declare the hook variable, at this point it is
not intended to be used by third-party code.
add new command magit-commit-amend
add new commands magit-commit-{extend,reword}

Add the new commands `magit-commit-extend' and `magit-commit-reword',
as well as the options `magit-commit-extend-override-date' and
`magit-commit-reword-override-date'.
magit-mode-quit-window: run new magit-mode-quit-window-hook

In `magit-mode-quit-window' run the new hook
`magit-mode-quit-window-hook'.  Do not explicitly declare the hook
variable, at this point it is not intended to be used by third-party
code.
add new commands magit-commit-{fixup,squash}

Add the new commands `magit-commit-fixup' and `magit-commit-squash'
as well as the option `magit-commit-squash-commit, the variables
`magit-commit-squash-args' and `magit-commit-squash-fixup', and the
functions `magit-commit-squash-commit', `magit-commit-squash-marked',
and `magit-commit-squash-abort'.
magit-emacsclient-executable: shell-quote-argument default value

We quote the default value, instead of doing the quoting when actually
using the (yet unquoted) value, because that allows explicitly forgoing
the quoting if it should cause problems.
specify default path to cl-lib in Makefile
Merge branch 'pr/squash'
Bind ? to magit-key-mode-popup-dispatch

magit-describe-item is a debug tool mainly useful for those writing
magit, when magit-key-mode-popup-dispatch is a useful entry point for
a lot of magit function.
Some style correction from checkdoc.

There are 242 Documentation style Errors left.
Merge pull request #1040 from marcel-wolf/master

specify default path to cl-lib in Makefile
Merge pull request #1035 from Fuco1/master

Provide autoloads for `magit-key-mode-popup-*` family of functions
Docstring for magit-commit-mode

This mode do mostly nothing, so the help string say not much.