Started implementing math for quadratic extensions: most trivial ones
Further implementing math for quadratic extensions

- Revised types TriVector, TriMatrix and NineMatrix: not just typedef but class with Triple as field
- Implemented some missing operations.
- Added tests
- Added one more Matrix constructor for easier test writing
Implemented NineMatrix::invert using GSL

GSL = Gnu Scientific Library (http://www.gnu.org/software/gsl),
built using msvc projects from http://brgladman.org/oldsite/computing/gnu_scientific_library.php
Little fixes: prepairing for major changes

- Renamed linear_transformation to optimal_transformation because it will no longer be linear
- Removed some unused method
- Disabled GPU updating since it is may be not implemented soon with Qx
Added a preprocessor option to control graphical vertex transformation

CAS_GRAPHICAL_TRANSFORM_TOTAL can be
set to 1 in order to use total_deformation as graphical_pos_transform,
and to 0 in order to use rotation*plasticity_state as graphical_pos_transform
Fix of previous commit: plasticity_state should be in both cases
Initial implementation of quadratic shape matching

It works! :muscle: But graphical vertices are not updated properly yet (still only linear)
Update cluster indices and count for physical vertices too

Allows to do paint_model on  low_model as well as on high_model
Implemented visualization of normals of graphical model

Also added a flag in main.cpp to disable update on GPU (otherwise normals won't be updated)
This required adding a new feature of AbstractModel: add_subscriber and notify_subscriber

Also fixed squeeze_sphere: now it updates normals properly
Updating graphical vertex positions (but not vectors) quadratically
Vertex struct change! Make normal 3-vector (it is already used in shader as 3-vector)

Updated VERTEX_DECL_ARRAY and VERTEX_INFO accordingly
First implementation of generate_normals: currently very slow
Smoothing clusters borders with weighted average
Mouse controls for camera