Add plugin support

Plugins can be loaded using the load_plugin function, which looks for
a plugin with the passed name + ".so" in the ./plugins directory.
It then loads the shared library and calls its init function.

In future, plugins might export some sort of map of commands,
but I'm not completely clear on what's next.