(PDB-69) Differential updates for catalog_resources

This commit combines catalogs and certname_catalogs tables and adds
differential updates for certname_catalogs similar to the current
fact and edges code
Added schema contracts to storage.clj
Moved diff-fn over to utils, schemafied it
Refactored some stored tests to use the new with-wrapped-fn-args
Fixes needed due to https://github.com/Prismatic/schema/issues/21. Switched from schema.core/defn
to schema.macros/defn and schema.core/String and schema.core/Number to String and Number. Loosened
the schema around resource parameters and the facts map.
Added a warning comment about the timestamp/expiration keys for facts
Switched test/schema.clj to to use platform specific Numbers/Strings
Changed the replace-facts test to pass in the correct facts map
Merge pull request #777 from senior/ticket/master/pdb-69

(PDB-69) Differential updates for catalog_resources