GCC 4.6 compatibility: no user-defined literals.
GCC 4.6 compatibility: fix warning about injected-class-name.
GCC 4.6 compatibility: no delegating constructors in Math::BoolVector.
GCC 4.6 compatibility: no inheriting constructors in Math::Vector.
GCC 4.6 compatibility: no delegating ctr in Math::RectangularMatrix.
GCC 4.6 compatibility: {} can't be used as default function parameter.
GCC 4.6 compatibility: std::array<Vector2> can't be constexpr.

Don't know why.
Math: properly test constexpr in all Vector classes.

 * Merged constExpressions() into other test cases, simplified the test
   a lot and removing duplicate code.
 * Fixed Vector3::xy(), Vector3::xy() and Vector3::xyz() constexpr
   overloads, they now return copy instead of reinterpret_cast
   reference. The copy is const to make constexpr operations working
   even on returned subclass, e.g.:

    constexpr Vector4 a;
    constexpr Float b = a.xyz().y();
Math: properly test constexpr in all Matrix classes.

 * Merged constExpressions() into other test cases, reducing duplicates
   and simplifying the checks.
 * Fixed old-and-forgotten operator[] overload in Matrix subclasses, it
   was reinterpret_cast on T* array, it is now sufficient to do only
   static_cast. Constexpr operator[] overload returns const copy to make
   constexpr operations working even on returned value, e.g.:

    constexpr Matrix4 a;
    constexpr Vector3 b = a[2].xyz();