Add match module
bisect: refactor over rel
Add evented module
Add TypedSession
Add PhraseSession
scripts/transform: fix indentation
Move PhraseResult into its own module
Session: use setData in default constructor path
Complexity: refactor level property
Complexity: trivial refactor
Complexity: factor out (get/set)Data
Sample: refactor property definitons
Factor CachedObject out of Evented
Evented: become an EventEmitter
Sample: use CachedObject
Session: factor out setResults
PhraseResult: serialize level too
Engine: use PhraseSession
Engine: generalize hookSession
Engine: use session.results rather than history