Harvest

-Refactored xml reader so that no data is lost when inheriting and overriding the vanilla CKAN CSW harvester
-Refactored NGDS harvester object so that it populates our federated schema for resources and packages (this means things don't get lost, like multiple authors and contacts)
-Worked out various circular memory overload problems when serializing from Python dict() to JSON
-Built JavaScripts objects for allowing the user to edit/update harvested metadata in the UI while still retaining the federated schema structure
-Refactored contribute form JS objects to support the harvested federated schema
-Refactored backend routes to do a smarter lookup for existing JSON objects
-Rebuilt additional info dialogues for packages and resources so that they don't display empty boxes when there isn't data and so that they fall back on the vanilla dialogues if the federated JSON fails for whatever reason