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.
mixlib-config's ruby config files are kinda awful, this should continue being a json file we slurp in and parse ala:
```
j = JSON.parse(open("/tmp/yay.json").read, :symbolize_names => true)
```