add support for logging exceptions to squash

I want to deploy a [squash server](https://github.com/SquareSquash/web) for us so we can track our agent (and other) exceptions. This will make debugging agent crashes much quicker (at least for me because I am bad at log parsing).

This does some cool things like:
1. Count exceptions (grouping them by stack trace and message)
2. Attempt to figure out who's responsible using `git blame` and send an email (if desired)
3. Store the state of the system when the exception occured (less useful for Smith, but good for web apps)