Move all breakpoint tracking functionality to
TimelapseBreakpointTracker. TimelapseModel now only disambiguates
DebuggerModel's DebuggerPaused events into DebuggerWaiting and
DebuggerPaused. BreakpointHit calls come only from the tracker, and
are not used outside of breakpoint scanning.  The current breakpoint
index and current breakpoint are managed by the tracker as well.

Also split the InputHit event into InputWaiting and InputPaused,
similar to DebuggerWaiting and DebuggerPaused. This allows tasks to
prevent default actions taken when pausing at an input.
Move TimelapseBreakpointTracker to be owned by TimelapseModel.
Extract breakpoint scanning and breakpoint provider into
TimelapseBreakpointScanner.js. Closes #153.
Move savepoint provider and instances to
TimelapseSavepoints.js. Closes #155.