Return ApiProblemResponse instead of raising exception

- The default RouteListener does not use a try/catch block, which means that
  raising an exception leads to application execution halting. Modified the
  listener to instead return an ApiProblemResponse.
Merge branch 'hotfix/json-decode-error'

Ensures that submitting invalid JSON will return an appropriate HTTP status and
problem response.