Broke messageReceived() method into two to allow for better instrumentation via java agents like AppDynamics

Currently, we can either instrument the activity invoked on the controller and catch the errors that bubble but not capture the preprocessor activity, or we can capture all activity in the request, but not capture any errors. This should allow us to instrument both.