Configuration API refactor [WIP]

Not ready for merge. Work in progress for all to see.
This merge is strictly defining the Configuration class.

From leankit:
Refactor all of ec-metal's configuration into an API
- config.json will still be an option (implement read)
- env vars included (remove from recipes and attributes)
- config objects will serialze into json for data bags

updating project to use data bag items is out of scope of this branch.
a) anything configurable is optional, per Mixlib::Config usage
b) I have not added validation yet.  Once the data is collected I will run a once through validation process on :allthethings so the user will be presented with all detected errors at once.