Add sample module
complexity: emit old and current value
Engine: factor out calcScore
Engine: trivial refactor
Engine: log bogus results
Engine: log level increment
Engine: remove trace log
Engine: factor out levelChanged
Engine: record result level
Engine: record result errorRate
Engine: record time samples
Engine: rework scoring to be multiplicitive rather than additive
Engine: simplify levelGoal calculation
Engine: add setTimeout event
Engine: add base / perLevel options
app: hookup engine timeout change to prompt times
app: drop base inputTime
ui: factor out hash module
ui: add lightsOut
sample: base range off q1/q3 endpoints