Factor out a general purpose GeometryVisualizer

Any batched geometry would simply implement an updater which does the shape-specific work for the general pupose visualizer.  This is still no where near ready for prime time.  I'm also considering a single GeometryVisualizer instance which has multiple updated.