content-negotiation cleanup

* remove contentTypeBaseType and use laziness
* let sendResponseStatus return its TypedContent