Add shadertoy example

Closes #420.
We've also started putting `app.run()` inside `if sys.flags.interactive == 0:`