WIP: Volume rendering

This PR implements volume rendering. It's basically a port of the technique that I use in Visvis.

Todo:

- [ ] make volume available in demo-data
- [ ] make camera information nicely available in vertex shaders, also for e.g. imposters
- [ ] implement other rendering techniques

No; I think rev_path is already in the correct direction because it begins with `map_to`. See above:
```
rev_path = self._node_path(map_to, map_from)
```
Perhaps you could change this to be less ambiguous:
```
rev_path = self._node_path(start=map_to, end=map_from)
```