split camera frame state out into a separate class so it can be reused
single renderer for the whole camera
use the naive frame transform, not the interpolated one

I only roughly understand why this is ok. I think still works sanely
because all the incoming positions are already interpolated. regardless,
it works, and will simplify things for me soon
remove attrib save. direct GL calls suck, and renderstates should make this unnecessary anyway
lift draw transform setup up to the context
draw billboards for distant terrain objects instead of spikes
Merge branch 'camera-refactor'