[MathLib] Constructor of TemplateVector3 needs a initializer list.

The TemplateVector3 is derived from TemplatePoint<T,N>. There isn't a
constructor taking 3 values for TemplatePoint. Instead of this a std::array
is used to initialize the TemplatePoint data structures. For this reason
the TemplateVector3 constructor that is taking two points to initialize
the internal data needs an initializer list.
[MathLib] Init list in TemplateVector3 constructor not handled by some compilers.
[MathLib] Removed unused code from TemplateVector3.
[MathLib] Vector3: Default constructor docu added.
[MathLib] Vector3: Added constructors for better usability.
[MathLib] Tests for Vector3.
[MathLib] Vector3: Make operators compileable.
[MathLib] Vector3: Removed unused code.
[MathLib] Vector3: operator+= takes Vector3 as arg instead of Point.
[MathLib] Vector3: Renaming/Reimpl. dot() -> scalarProduct().
[MathLib] Vector3: Removed unused code.
[MathLib] Vector3: Reimpl. crossProduct() as a friend.
[MathLib] Tests for scalarProduct() and crossProduct().
[MathLib] Vector3: Removed unused code.
[MathLib] Vector3 Removed unused code.

Method does not make use of any part of Vector3.
If the functionality is needed it can be impl. outside of this class.
[MathLib] Vector3: Reimpl. mult. with scalar.
[MathLib] Tests for mult of Vector3 and scalar.
[MathLib] Vector3: Tests for operator*=.
[MathLib] Vector3: Length() -> length() (style guide).

Made sqrLength() private.
[MathLib] Vector3: Style things.