Rename Marshaller#marshal -> Marshaller#serialize
DRY up Marshaller logic for getting a field's value
Separate marshalling and unmarshalling into separate service objects
Privatize _marshal and _unmarshal

Expose them publicly through the serialize and deserialize methods