Add forward declaration of Quaternion in Matrix3

When only including Quaternion.h (and not Matrix.h), builds fail when using a Quaternion

**Sample Program**
```c++
#include <cvt/math/Quaternion.h>

int main(int argc, char** argv) {
    cvt::Quaternionf q;    
    return 0;
}
```
fails to build with the following error (from clang, same in gcc):

>In file included from /usr/local/include/cvt/math/Quaternion.h:29:
>In file included from /usr/local/include/cvt/math/Matrix.h:36:
>/usr/local/include/cvt/math/Matrix3.h:761:9: error: no template named 'Quaternion'; did you mean 'Eigen::Quaternion'?
>        Quaternion<T> q( *this );
>/usr/local/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h:260:58: note: 'Eigen::Quaternion' declared here
>template<typename Scalar, int Options = AutoAlign> class Quaternion;

Note that the above example succeeds when both Matrix.h and Quaternion.h (or only Matrix.h) are included. This fixes the case when only Quaternion.h is included