Fix shader recompile issues

This is WIP and currently fixes #602.

Another issue is at `scene/cameras/cameras.py` line 443: 
```
tr = viewbox_tr * proj_tr * cam_tr
```
This line creates a new transform every time it is run, thus triggering a recompile downstream for any visuals in the scene.

Also fixes #605.
Ah, because you do the check in `_prepare_data()`. Carry on.