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.
Shouldn't that be test only?