Add "windows", grouped events, sorting by first occurrence, more colors, more boxes.

These are all changes/features I've found useful working with ghc-events-analyze. Feel free to comment/question/cherry-pick at will.

The "window" feature has been useful for instrumenting a web server with traceEventIO and generating per-request analyses. I've left some motivation comments on each commit, which you can find at the bottom.