Output format plugin

This is early work. I just wanted you to have a peek to the direction this is turning into.
I think we need to generalize this, so we can: 

* ``protected $contentTypeOnError = 'application/problem+json; charset=utf-8'``
* Move ``if (!empty($data['status']) `` logic to a central place
* For simplicity maybe we can just ``floor($data['status']) != 200``?