add an abstract catalog class

ideally all specific catalogs will inherit from this catalog and
hopefully only the handle method will have to be overridden with a
different parser
Merge pull request #2 from zachmokahn/abstract_catalog

add an abstract catalog class