Multiple changes

- Added the shapes::DrawMode type.
- Refactored the Indices() and Instructions() functions of shape builders
  to be more generic.
- Refactored the shapes::ShapeWrapper class.
- Added a new draw mode to the Torus shape builder.
- Updated examples accordingly.