Added support for XML marshalling in addition to JSON.
Content negotiation happens via Accepts request header of content suffix (.xml or .json)
JSON is still the default content.