Break up the volume renderer code

This splits the `VolumeRenderer` class into several different classes. It should make it easier to add new `Actor` objects to the scene.
`sf`?