Deserializer utilizes passed in target

Refactored deserializer to utilize similar interface as serializer
Restored two phase functionality to serializer
Removed doubles and replaced with actual Serializers (see spec_helper)