add basic plugin class

The plugin class will encapsulate behavior. This needs to be greatly
expanded to...

* Make it easier to "mount" plugins at prefixes
* Make it easy to build unix-style "commands"