Refactor container modularity

DO NOT MERGE!

This PR addresses the following Jira tasks:
https://jira.oceanobservatories.org/tasks/browse/CIDEVCOI-651 (Modular capability container with varying capabilities)
https://jira.oceanobservatories.org/tasks/browse/CIDEVCOI-659 (Refactor datastore layer)

Based on: https://github.com/ooici/ion-definitions/pull/300

This PR will evolve based on feedback. Highlights:

Container profiles are explicitly declared in config files
Profiles can have selective container capabilities
Profiles can change the implementation of capabilities (keeping the use interface the same)
Profiles can change pyon.yml to adjust for that profile
Gumstix profile is now possible