Fix bitwise operations with encoded bitstreams.

The problem with the existing algorithm was that it trimmed trailing zeros
after applying the operation.
Use a more symmetric representation for base cases.
Uncomment temporarily ignored test cases.
Add operator bool for util::result.

This is now consistent with the API for util::optional and util::trial.
Add alias for invalid event ID.
Move typedef to the right file.
Add more introspection convenience.
Support record iteration with offset indicator.
Use more semantic type descriptors.
Parallelize event indexing.

This commit refactors the indexing architecture. Previously,
we observed indexing rates in the order of 20-40k events/sec. The granularity
of concurrency was a single event. In comparison, the ingestion rate of a
bro conn.log having 5.4M lines was around 90-100k. While it took 80 seconds to
ingest the log, it was order 15 minutes to index it.

With this commit, we pushed down the granularity of indexing to one actor per
value. That is, for a conn.log with 20 fields/values, VAST uses 20 actors plus
two extra actors for event name and timestamp (22 actors total). Not
surprisingly, this changed the performance: it now takes 58 seconds to index
the events from the conn.log mentioned above, at a rate of also 90-100k
events/sec: indexing is now *faster* than ingestion, with a eman indexing rate
of 2.1M values/sec.