capture pikelet exceptions at top level, clean shutdown

Instead of swallowing the exceptions inside the pikelet fiber, allows them to bubble higher and shut all pikelets down cleanly at that point.

(Web & API exceptions are handled at the Sinatra level.)

Fixes #143.