[TESTING] Move cartridges into Mongo

All cartridge logic moves into Mongo.  Remove old "feature" lookup logic and replace it with name or ID lookups.  Ensure all cartridges have an ID.  Make cartridge changes idempotent objects by creating new versions.  Make cartridge activation/deactivation an atomic operation even for node cartridges.

Extract GroupOverride and ComponentSpec classes from current logic, unify group override logic into a few core locations for better testability.  Add additional unit tests to verify cartridges, the state of applications after creation, and values returned by the REST API.