Added plugin system

It's a super barebones kind of thing, an Elderberry plugin is a python
module that has a single function, plugin(), that will return a
plugin object.

A plugin object should have an initializer that will take a configuration
data structure, a method handle() that takes the main tree and does stuff
with it, and a method dump() that will make the results of handle() known
to the outside world.

Plugins should be listed in an Elderberry config file under the stages:
key in the order that they should be applied to the tree. The value of the
plugins listed should be configuration data (filenames, etc.) to be passed
to the plugin when it is initialized.
Removed output flags from codeGen script

Cost of implementing is lower than the benefit they'd provide
Fixed up makefile generator until it would compile