Add ability to maintain back reference to user object in DecorativeGeometry

Fixes issue #34.
- After discussion with @aymanhab, added to `DecorativeGeometry` the ability to store and recall a user pointer for use in selection operations for mapping the selected piece of geometry back to the object to which it refers.
- There was already a body id stored with `DecorativeGeometry`; I added an arbitrary index also that would allow differentiation of several pieces of geometry that might refer to the same object.
- Added missing concrete class overrides for the generic `set()` methods that return concrete type references for easier chaining.
- Added some missing doxygen.
- Lightly tested.