Make VoxelGridShape as optional component
https://github.com/dartsim/dart/pull/1076#pullrequestreview-134244152:
It would be nice if we could restructure that relationship somehow. For example, have a dart-shapes library that contains the default dependency-free shapes, and then dart-shapes-voxel could be a component that adds the VoxelGridShape class and has an octomap dependency.
We'd have to make drastic changes to the implementations of the collision detection wrappers, so that shapes can inform the collision detector about how to convert its data from the DART representation to the underlying collision detector's representation. That would have the additional benefit of allowing us to support user-defined shape types without the user needing to make any changes to the DART codebase.