Request parsing and response view model negotiation with accept headers

Squashed version of #16