17580 500 when posting to textile with json

Implements the following tickets (the commits also reflect this order):

1. https://community.openproject.org/work_packages/17580
2. https://community.openproject.org/work_packages/17439
3. https://community.openproject.org/work_packages/17440
@hschink is this part of the Grape `README` relevant?

> When the content-type is omitted, Grape will return a 406 error code unless `default_format` is specified.
> When the content-type is omitted, Grape will return a 406 error code unless `default_format` is specified.
> The following API will try to parse any data without a content-type using a JSON parser.
> 
> ```ruby
> class Twitter::API < Grape::API
>   format :json
>   default_format :json
> end
> ```