Added indexing of events by type and methods for subsequences.
Added indexing of events by type and methods for subsequences.

* Added index of events by type, supporting queries based on event
  types.
  * This enables constant-time membership testing of event types
    (`has_type`).
  * This limits searching for a particular event to only those events
    with the same event type (`has_event`).
* Reworked `__contains__` to only support testing membership of events,
  based on `has_event`, or event types, based on `has_type`.  These have
  newly-efficient implementations.  This eliminates support for
  searching for event types and values which was a linear time operation
  and thus not really in the spirit of `__contains__`.
* Added querying capabilities for more event fields.
* Wrote `events_in` and `subsequence` to support extracting and
  instantiating subsequences of events.
* Added ability to store and retrieve nontemporal "facts" that apply to
  the entire event sequence.
* Replaced unnecessary `yield from <iterable>` with `return <iterable>`.
* Updated style.
  * Wrapped docstrings.
  * Changed members to use underscore convention to indicate privacy.
* Updated copyright year.

afbarnard/esal