This really doesn't belong here.
Don't leak shaders when reloading them.

As a side effect, don't exit if reloading shaders fails. Just continue using the
old ones.
Split Cube out into a seperate file.