separate plugins into discrete commands

Separate plugin types by directory and commands by individual scripts. Support for a command is determined by the presence of a script with an appropriate name. Unfortunately, only a prefix can be used, since extensions are necessary on some platforms.
And now I have to scan the *entire PR* to see if there are any other comments that I missed, because inline comments aren't visible chronologically. I'm looking forward to standing up Phabricator...