Optimized entity storage of components

Waste a little space to gain a lot of speed. Rather than storing the
components in a flat array, we store them in a table (represented as a
[][]Component) where type bits are mapped to an index based on their bit
index. The array of components at any given index all have the same
type. This way, accessing components by type is very inexpensive.
Started input module