Revert "Provide autoloads for `magit-key-mode-popup-*` family of functions"

This reverts commit 401ec18265dc63468999ddad6a39cac036fd169f.
magit-key-mode.el: merge some toplevel sections

Merge three toplevel sections because the are going to be refactored
so heavily that the current split and headings would become rather
confusing.  Use a temporary section heading, later to be replaced.
magit-key-mode-{delete-group,de-generate}: remove functions
magit-key-mode-last-buffer: remove variable

It was basically a buffer-local variable whose value was...
that buffer itself!

Function `current-buffer' serves us just as well.
popups: temporarily remove the special "diff options" popup

Removing this now will make refactoring easier.  Once the refactoring
is over, customizing of popup arguments "from within the popup" will
be supported by all popups, not just this special one.

Remove the functions `magit-set-diff-options',
`magit-set-default-diff-options', `magit-save-default-diff-options', and
`magit-reset-diff-options'.  But keep the variable `magit-diff-options'.
popups: temporarily drop hardcoded default popup arguments

This feature will be restored later in a much more powerful way.
Eventually users will be able to add their own defaults without patching
`magit-key-mode.el'.  Until then remove this feature completely, as
doing so makes refactoring easier.

Actually the only such default being dropped here is `--graph' used for
logging.  That's the only one left after the more complex and flexible
"diff option" support has been removed in the previous commit.  But this
does not only remove this one particular default, it removes support for
this hacky feature all together.
magit-key-mode-popup-{*}: define explicitly

It looks wasteful now, but it will get better.

Remove `magit-key-mode-generate'.
magit-key-mode-groups: split into individual variables

* The new variables are named `magit-popup-{*}'.
* Remove variable `magit-key-mode-groups'.
* Remove function `magit-key-mode-add-group'.
* Adapt function `magit-key-mode-options-for-group' accordingly.
magit-key-mode-insert-{argument,switch,action}: remove functions
magit-key-mode-{key-defined-p,update-group}: remove functions
popups: store keymaps individually in magit-popup-{*}-map

Instead of storing all popup keymaps as an alist in
`magit-key-mode-keymaps' store each map in an individual variable.
Do not delay defining the keymaps until they are first used, instead
define them when the library is loaded.

* Define a variable `magit-popup-{*}-map' for each popup.
* Remove variable `magit-key-mode-keymaps'.
* Remove function `magit-key-mode-get-key-map'.
* Adapt function `magit-key-mode-build-keymap' accordingly.
* Adapt function `magit-key-mode' accordingly.
magit-key-mode-draw: assume there always is an action

In function `magit-key-mode-draw' assume that every popup has at least
one action.  It's save to do so, a popup without a single action would
not make any sense.
magit-key-mode-draw: cosmetics
magit-key-mode-redraw: assume there always is an action
magit-key-mode-redraw: cosmetics
magit-key-mode-draw-buttons: absorb magit-key-mode-draw-header
magit-key-mode-{prefix,current-args,current-options}: make buffer-local
magit-pre-key-mode-window-conf: make buffer local

There was a comment saying that this isn't necessary but it certainly
doesn't hurt doing it, so I do it anyway.
magit-key-mode-redraw: limit to drawing

Move things that don't have anything to do with drawing from
`magit-key-mode-redraw' to `magit-key-mode'.
magit-key-mode-redraw: absorb magit-key-mode-draw