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.
I would either make these a comma separated list (`from a import b, c, d, ...`) or just import `shared` the regular way and use them fully qualified. I do think calling this `git_shared` would help disambiguate from `plugin_shared` or whatever we end up calling that other one.