Start to build out cookbooks#create endpoint.
Finish building out original cookbooks#create endpoint.
Add cookbook categories, move share functionality into Cookbook

This adds a Category model so cookbooks can be created and associated
with a particular category, a requirement of the share endpoint.

This also starts to abstract the functionality for sharing a cookbook
out into Cookbook working towards abstracting Cookbook attributes from
the metadata.json in the tarball posted.
Add spec for Cookbook.share!
Initial metadata extraction

This builds out a very simple implementation for extracting metadata
from a metadata.json file inside of a .tgz file.

This also tweaks how pg_search works for Cookbook to adjust for
having category as an association.
Attach tarballs to cookbook versions

This attaches tarballs to cookbook versions when someone
shares a cookbook.
Start to handle uploading a new version.

This starts to handle uploading a new version of a cookbook
by finding the original cookbook by name and updating any attributes
from the metadata.json.
Tell git to ignore redis dumps and paperclip attachments.
Start to add error handling for creating cookbooks.

This adds error handling at the controller level for dealing with
invalid or missing user supplied data.