Supervision Tree

Big refactor to alleviate client crashing in the Ridley codebase. This PR sets up a proper supervision tree which will restart actors upon an unexpected crash.

This will also separate objects returned from the chef server and the connection used to retrieve them by splitting the Resources into Resources and ChefObjects. The resources use a shared connection pool to communicate with the Chef server and return ChefObjects which represent the accessed resource. These ChefObjects are tagged with the actor of the resource used to retrieve them to give a more object oriented/active recordy approach to things. You can retrieve a resource, change it's attributes, and then save it back by calling `#save`.