Added type traits for integral and floating point types.

This is actually part of C++11 but I thought it would be better to have these explicit just in case.
Added vector class template for static sized, typed vectors.
Added square root wrapper.
Inserted the vector class into CMake builds.
Changed source file search mode to recursive
Added wrapper for gtest headers to turn of noisy compiler warnings from the googletest framework
Pulled Doxygen generation up into a higher directory
Added directory for 3rd party header wrappers.

These wrappers are only used to include 3rd party libs and should be used only for turning noisy compiler warnings off.
Cleaned up
Moved operators into matrix class header
Moved memory layout into matrix class header
Cleaned up a bit and added functions for vector-proxy interop
Fixed a bug which raised undefined behavior by accessing memory out of array bounds
Removed because not used
Moved free functions into separate header.

Cosmetic changes.
Moved free matrix operations from matrix header into separate header
Aded traits to distinguish floating point and integer values.
This is actually part of C++11 but we do not rely on any environment to provide us this features.
Added free functions for vector multiplication
Added free functions for matrix-vector multiplication
Fixed noisy compiler warning for constant expressions in assert statements
Added documentation and moved free functions into separate header