Debugger snapshots

### Features:

* Saves the runtime state every 100 events.
* Stepping forward works as usual
* Stepping back goes to the previous checkpoint and works back up to the current event location
* Hotswapping regenerates these checkpoints with the new code
* That trace bug is fixed!
* **It feels much faster**

#### While you review:

* I'll see if there's a better number instead of 100 to choose.
Why is this `ceil`? It seems like this could lead to an index outside the range of snapshots?