Support modifying error data before sending response.

This change enables users to customize the response when an error occurs via a send milestone. Additionally, the controller may now gracefully continue through all parts of its loop instead of abruptly exiting at the first sign of an error. The `error` field was added to the `context` object to facilitate passing the error message through all hooks. An example usage can be found in the updated unit test.