More work on fleshing out the API. Should be generic enough for
general use and easy enough to extend for custom modules. Not a
working version yet.
Added to the list of files to ignore.