Turn GFX into a C++ class.

Still need to enforce that the GFX object returned is a singleton.
Update GFX to be a proper C++ class.

- Rebuild GFX_start() as the class constructor.
- Changes all functions class to to be class methods.
- Update comments to include GFX, and LIGHT as a proper C++ classes.
- Remove "GFX *" data member from NAVIGATION class.
  o This should have been done as part of an earlier changeset.
- Clean up TStack::push() so that it no longer needs to create a
  temporary variable.
- Make TStack methods push(), and pop() return "*this".
- Add private "*Matrix()" routines to better support TStack methods
  loadLookAt(), loadFrustum(), loadOrtho(), and loadPerspective().
  o Alter implementation of lookAt(), frustum(), ortho(), and
    perspective() to use their corresponding "*Matrix()" functions.
    This way to code for generating the various matrix types only has
    to be maintained in one place.
- Hand optimize the matrix multiplication in TStack::frustum().
- Add various TStack methods to take a list of scalars in addition to
  the versions which take "vec &" arguments.
  o loadScaleFactors(),
  o scale(),
  o loadTranslation(), and
  o translate().