log API errors properly, handle fiber pool in API tests

I think the errors that were happening were being swallowed by the fiber pool magick. I've restored the exception handler with that and integrated the sinatra-level exceptions for records not being found into it, and found a way to ensure that's being run under rspec.

Fixes the issue raised in #379, although may have now exposed another issue needing to be fixed. At least now we're logging it properly.