Catch iteratee errors in `runWebSocketsSnapWith`.

To allow clients to handle this error, accept an additional error
handler. Also move everything to `MonadSnap`.