Move storage utility and hashing functions out of scf/storage.clj and into their on namespaces

To create the catalog hash debugging facility for (ticket 22977)[http://projects.puppetlabs.com/issues/22977], the storage code needs the full current catalog.  This "old catalog" will then be output along with the incoming "new catalog".  Calling the function that pulls the catalog from the DB and puts it in the right format (in query/catalogs.clj) causes a circular dependency with scf/storage.clj (by way of query.clj).  This PR moves these storage utility functions out of scf/storage.clj and into scf/storage-utils.clj.  Originally I thought the hashing functions were causing the cyclic dependency problem, so I pulled those functions out into scf/hash.clj.  I have left that change in even though it didn't fix the problem.  Those functions stand on their own anyway and I'll be adding more to them to help users debug hashing differences between catalogs.