Sentry integration

Ultimately this is a pretty simple integration:

- We watch for any `uncaughtException`s, send them to Sentry, and exit
- We watch the default express error handler for exceptions and send them to Sentry
- We watch for non-fatal preprocessor errors and send them to Sentry, along with the `context`