o Change no-argument constructors for Vector3D, Matrix3D, and SymMatrix3D 
  such that they leave data members uninitialized.  
  - This will enhance performance because it avoids a lot of unnecessary
    writing to large blocks of memory when allocating large arrays.
  - This will also make locating the use of uninitialized values with
    tools like valgrind possible for these classes.
  - This will probably involve auditing and updating a lot of mesquite
    code because there are probably many places that rely on the 
    initilaizate-to-zero behavior that will have to be changed to use
    explicit initilazation.  valgrind should be able to identify such
    things.
 
o Replace all use of Vector3D and Matrix3D with MsqVector<3> and 
  MsqMatrix<3,3>, respectively.
  - This change is dependent on the previous because the MsqVector and
    MsqMatrix classes to not zero data members for no-arg constructor.
  - This will also necessitate renaming some methods throught the code
    and changing matrix member access from m[0][0] to m(0,0).
  - This will also require making a templatized version of SymMatrix3D
  - Also clean up code in TMP QualityMetric classes that currently do
    ugly casting and such to convert between the two.
  
o Separate solvers from algorithms (i.e. the code in VertexMover) such
  that VertexMover can be split into the logical algrorithms it 
  implements (Global, Block Coordinate Descent, and Loca/Nash Game).
  - This will allow compile time prohibition of illogical constructs
    such as an outer termination criterion for a global optimizaiton
    or an inner termination criterion for Laplace smoothing.
  - Culling must also be redesigned because a) it doesn't make sense
    for global optimization, b) it doesn't make sense in an outer
    termination criterion, and c) it is combined with inner 
    termination criterion now and it would not be possible to specify
    them for Laplace with the above changes. 

o Fix outer termination criterion based on objective function value 
  when using block coordinate descent algorithm (don't need to 
  re-calculate for every outer iteration because BCD objective 
  function knows global value at all times.)

o Move code specific to FeasibleNewton from MsqHessian class to 
  FeasibleNetwon class if it can be done w/out negatively impacting
  performance (e.g. cg_solve and preconditioner).

o Collapse directory structure a bit.  Mesquite directory structure is
  too deep.  This makes parallel builds and parallel test runs less
  efficient.  It is also tedious.  Examples include:
    - move all one-file tests from testSuite/*/ to testSuite/ or
      possibly to a single common subdirectory such as testSuite/Integration
       * NOTE: audit tests to ensure that they are not writing the same
         output file names, as they'll stomp on each others' output and
         nasty things could happen if tests are run simultaneously.
    - move VertexMover subclasses that are a just one .hpp and one .cpp
      to VertexMover/ directory
    - maybe get rid of VertexMover subdir also, moving all contents
      to top QualityImprover dir
    - move QualityAssessor to Misc/ or perhaps Control/
    - Maybe move all MeshDomain implementations to their own top-level
      directory rather than having them in Util/

o Get rid of top-level include/ directory.  The whole build system gets
  really messed up if users specify --prefex=top_mesquite_dir because
  that installs copies of all headers to include/, resulting in two
  (possibly conflicting) versions for subsequent builds. Either move it
  to src/include or just split the contents between src/Mesh and src/Misc
  as appropriate.

o If you want to get the autotools build process running, the configuration
  files will need to be updated. For example, all header and source files have
  been namespaced with "Mesquite_" to avoid conflicts with other packages. This
  change is not yet reflected in the configure files (2014-08-22).

o The unit tests at testSuite/unit/ are partly disfunctional since the required
file <Mesquite_cppunit/extensions/HelperMacros.h> is missing. Details are given
in testSuite/unit/CMakeLists.txt.
