issue #206: created an initial pass at a plugin API + auto documentation generation for python