Fix setTimeout memory corruption issues

- Prevents JSC from reference-tracking the ScribeEngine owner instance
- Renames `engine.jsCocoa` -> `engine.jsc`
- DRY up the `spin()` code