Debugger

### Features
* Continue a paused debugger
* Continue debugging at a scrubbed state

#### Known issue

Suppose you have a program that uses `fps 30` to keep it chugging. If you pause then continue, the program will get the time difference between when you paused and when you continued. This might cause Mario to do a super jump into space and come down a few seconds later.

If you had a key button pressed in the instant you continue the program, the button will remain down until elm gets notified again that the key is up.

**Why?**

I suspect this comes from `wrapRunDelayed(func, delayMs)`. We get a function, in some cases, a timer. These functions may make a call to `Date.now()` or some other time object—this is beside the point. They're in a function that we can't touch. One way to prevent the `fps` signal from firing an erroneous time delta would be to modify the function it's calling (but causes other problems).