remove `magit-define-command`, define command hooks explicitly

Remove `magit-define-command` and use `defun` to define all Magit commands. For those very few commands whose hooks were actually used, call the hook explicitly.

This, and a few other pull requests I am currently creating, require minor changes to third-party packages. I will take care of that later today, or if I don't get to it today, then tomorrow.