Make expression nodes printable.
Mention Freenode IRC channel.
Do not list deactivated Broccoli as dependency.
Fix bugs in bitmap index creation.
Define bitstream bitwise ops for unset operands.

Previously we simply did not allow bitwise operations on polymorphic
bitstreams. Now it works with the "natural" semantics. That is:

        - X & Y => empty set if either X or Y is empty
        - X | Y => X if Y empty, Y if X empty
        - X - Y => X if Y empty
        - !X    => no-op if X empty
Fix bug that treated || as &&.
Implement load-balancing over partitions.

The index now supports load-balancing over multiple partitions, closing #54.
There exists a configurable parameter for the maximum number of partitions to
hold in memory, which is the sum of *active* and *passive* partitions:

        max = active + passive

Active partitions are those used for arriving data: the index load-balances
arriving chunks are across them. Passive partitions are swapped in and out
during querying. For example, if one configures max = 5 and active = 3. Then
there exist 2 remaining partions that will be constantly swapped in and out
until the query finishes. When users issue a query, the index constructs a
*schedule*, which is the sequence of partitions that it will iterate over.
The index also relays queries to active partitions, but these never get swapped
out. In our example, if one of the 2 passive partitions has answered a query,
the index replaces it with the next element in the schedule.

The load-balancing works on simple threshold basis: once a configurable number
of events reach a partition, it gets evicted from memory and replaced by a new
one. The default number of events per partition is currently set to 2^20. In a
certain light, the load-balancing implementation also relates #53 because each
partition has its own context for constructing bitmap indexes.

By adjusting the maximum number of events per partition, we can also control
the flushing behavior (#55), although we need another dedicated mechanism for
this aspect.

Other changes:

  - Moreover, we now keep track of nil values explicitly. This paves the way
    for #40 so that we can soon answer queries like ':string != nil'.

  - Fixed the implementation of set bitmap indexes.