Error handling

- Use forked version of CORS filter which doesn't clear headers when response.reset() is called.  RestEasy makes this call.
- All endpoint errors will be tracked by throwing exceptions
- `ApplicationExceptionMapper` will catch any endpoint exceptions and determine if one of the nested exceptions was one that should be mapped to a status code other than 500 - Server error.