Groups

A lot was done on this branch; the first deletion-related logic is here, although some of it is incomplete. Also, refactored the model loading semantics to a) support cyclical model dependencies, b) support loading models from plugins (though those don't exist yet), and c) be less magical and more explicit while still maintaining the niceties of the singleton/lazy-loading behavior.

A lot more testing was added too, as well as swagger documentation.