Clean up the API a bit

The module API contains a lot of neat little flexible things in it.  One of the things I decided to do before I decided to allow custom actions was to allow command modules to call the commandextra hook during processing instead of after if they felt like it.  That has, unfortunately, led to a good number of bugs where you have to be really careful when using a command's commandextra hook to catch all cases in which a commandextra hook is called (e.g. if it doesn't get called during the command processing, it'll get called after, likely without the data you expect).

Since I've since implemented custom actions, which is much better suited for this sort of thing, I've opted to remove the option to call the commandextra hook for a command mid-process, instead requiring modules that want this functionality to use custom actions (since that's what custom actions are for, really).  This should make it easier to implement functionality correctly, since we're taking steps to enforce correctness in modules.

This really just makes the API more sane more than anything.  It may or may not also fix a couple bugs from some edge cases with commandextra I haven't caught yet via removal of said edge cases.