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)
I would just raise this immediately so implementer knows the moment this is called it is not implemented vs. later.

```ruby
raise NotImplementedError, "Abstract method #setup_serialization must be implemented in #{self.class.name}."
```