Make initialization of the libevent driver thread safe.

Although there shouldn't be an actual race-condition in the code due to the way data is accessed and due to the order of initialization (main thread first, this makes the code more robust and hopefully avoids future issues.
Add assertion for unknown throwable types returned from fibers.
Improve error format with file name and line number. Fixes #317.