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.
I think we can even do `Buffer.__init__(self, data)`, because Buffer will then call (our) `set_data()`