Various compile fixes for samples and faces

Update a number of the samples to accomodate recent changes to materials, faces
and rotations.  Introduce an optional<T> type (probably should rename to
prevent future clashes with std::optional) to allow nullable types, e.g.,
with bounding boxes and faces.  Also clean up some lingering references to
Face4, and remove a number of deprecated code paths specific to Face4.
Uncommented Camera and Mesh fallback visitor
Include mesh header in scene.cpp
Updated getBufferMaterial in gl_renderer.cpp
Restored static assertion for Vector3 size
Removed obsolete virtuals in Vector3.h