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)
Per discussion, in a future PR, look at refactoring around passing yielded builder into concrete serializers.