[REVIEW] Fix exceptions

![cat](https://cloud.githubusercontent.com/assets/527874/5464563/dc82424e-8581-11e4-8794-92d90846727e.gif)

### Problem

Currently the metrics in cloudwatch are a bit screwed, and it's because we're essentially recording 404's and non 200 responses as `PublisherRequestDataMapperApiError` as we would throw the exception which would then be caught by the last rescue block which would then raise the error as an `ApiError` which resulted int he broker returning the error code as a `502` in the `request.rb` class.

### Solution

Add a `InvalidApiStatusClass` that's given the status code and re-thrown, so it's picked up at the top level and the status code is used to construct the response sent back.