Run frame scripts for objects not on stage, too

@tobytailor disabused me of the idea that frame scripts are only run for on-stage objects, so this reverts that change from July.

Contains some semi-heavy refactoring of how the frame event cycle is run, to make this work nicer/at all.

Plus documentation of some test findings.
Merge pull request #1643 from tschneidereit/master

Run frame scripts for objects not on stage, too