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).
Does this mean this function gets called even when things are paused? Or only once or what?