new special purpose commit commands

Add new special purpose commit commands `magit-commit-{amend,extend,reword,fixup,squash}`. Note that the last two just create these commits. Interactive rebase does not actually automatically modify the todo list, unless one has set the appropriate git variable. I will later work on rebase, likely making it a popup (but that will have to be done very very carefully... for known reasons).

It also adds option `magit-commit-ask-to-stage' which is somewhat like `magit-commit-all-when-nothing-staged` that was removed a while ago. It does not offer various ways of staging like the old option did, that wasn't really very useful. Instead it shows these unstaged changes when the user is asked to make the choice, which I find rather useful.

This still needs some testing. Maybe those how requested these things could help. @azuk @mgalgs @Andersbakken