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.