Add support for dynamic command queues

If you push a function into a scene, you'll execute the commands
returned by that function like if they came in that order in the scene,
this allows you to branch the scene depending on variables.

For example, check the 'marry' scene for the BL reference.