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.
I suppose I could pass it in. `VolumeViewer` doesn't have to know as much about the inner workings of `VolumeRenderer` this way.