Improve error reporting and choose correct profiler for middleware
Removed EventProfiler (and thus, Windows support for now)

Having compared the event profiler to the statistical profiler, the
event profiler’s overhead (up to 10x) can overshadow the intrinsic work
of the program. This distorts timings too much, and I do not want
pyinstrument to give misleading results. Additionally, this allows me to
simplify the code.

It may be possible to add back windows support by using a background
thread to periodically send SIGTERM to the process (SIGTERM is not used
by Windows, see http://msdn.microsoft.com/en-us/library/xdkz3x12.aspx)
Code tidy