Feature/clean up deserialization

@sheavalentine-mdsol @jcarres-mdsol @mdsol/hypermedia-team Please review and merge.

This PR:
* Symmetrized Serializer and Deserializer base functionality
* Symmetrized Factory specs
* Misc cleanup of file locations
* Consolidated errors in one file


Probably fit this on one line
target.is_a?(Hash) ? target : JSON.parse(target)