Update repository configuraiton for chef client/server and manage dependencies with librarian

This PR makes a first pass at restructuring the repository for use with chef client/server model instead of chef-solo. 

These changes include:
* Modifications to CloudFormation which enable launching stacks whose automatically register with the Hosted Chef service.
* Adding librarian-chef for dependency management
* Renaming the `cookbooks` directory to `site-cookbooks`
* New empty environment definitions for `test`, `dev`, `staging`, and `prod`
* knife configuration changes to support librarian-chef and chef-server changes, including new environment variables which may require settings for proper operation in various environments:
    * `CHEF_USER` should be the local user's username on the Hosted Chef service (knife falls back to local username when unset)
* add `fog-prune` tool and configuration for automating Chef node pruning