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.
We should probably extract out an `is_command_supported` function or something that we can call without throwing. Either that, or throw something like `PluginCommandNotSupportedError` we can catch specifically. The reason is that we're going to want `peru reup` to print something intelligent when the user asks it to reup a module that isn't supported.