added support for custom encoders/decoders, use by defining a sub that receives $options(hash)/$response(string) as first and  as second argument
support mandatory deep hash params for json and xml output
leave out the check for specific content_types, we want this to work for any deep structure supporting encoder
Convert to Moo and Type::Tiny