Added additional items to optical package.
Renamed AcceleratedPrimitive to BoundPrimitive to better describe what the class actually does to the primitive.
Tidied up code.
Minor refactor of AffineMatrix API (functions changed are not currently used anywhere).
World now tracks all the observers in the scenegraph.
The lists of all primitives and all observers in the scenegraph are now part of the public API.