Github Support

This is by no means complete, I'm sure I'll have many more changes to this code shortly. I'm putting this PR here to show you what I'm doing, and see if you have any advice or thoughts.

The basic goal here is:

 * Have a community server api.
 * Hook Store#find to attempt to locate the cookbook on github if its not found in the store. 
 * Have the ability to connect to Github.
 * Use GH connection to locate a cookbook repository in a user/org.
 * Parse the metadata from the repository contents.
 * Get the archive_url for the tarball.
 * Add cookbook data to CZ-Store.

Mostly, I don't want to go through the upload process and I want my community api to always reflect the latest in master (though it would be awesome to add support for cookbook versions via git tags).

Our problem is that we have internal forks of some external repo's and the api URL in Berks/Cheffiles is often the community site. We also don't want to list _every_ dependency in our Cheffiles, its tedious and duplicate data that simply isn't needed for non-public cookbooks.

cc @whilp