Fix off-by-one error in the IO manager

The last enabled event manager was being needlessly restarted after
increasing the number of capabilities at runtime.
Switch IO manager to a mutable hashtable

This data structure (IntTable) provides a similar API to its predecessor
(IntMap), at half the number of lines in size.

When tested in isolation using criterion, IntTable is much faster than
IntMap: over 15x, according to my criterion benchmarks.

This translates into a measurable improvement when used in the IO manager:
using weighttp to benchmark acme-http under various configurations on two
32-core Linux servers connected by a 10gbE network, I see between a 3%
and 10% increase in requests served per second compared to IntMap.

Signed-off-by: Andreas Voellmy <andreas.voellmy@gmail.com>
Add GHC.Records with implementation of `Has` class
Introduce type family on Has typeclass and proxy argument on getField
Support lenses and simple update
Type-changing update
Documentation for GHC.Records
Move Symbol to GHC.Records and force it to be compiled early
Comments in GHC.Records
Correct documentation in GHC.Records