Airbrake error fallback

Fallback to `msg` in airbrake hook if:

- no `error` was provided (or it wasn't an `error` type)
- `msg` is an `error` type

For convenience since often `msg` will just contain the anyways.

Also fixes a panic if `error` was not an `error`.
Why change this?