Added Quat4d

Open issues:

* Should Quat4d be a Tuple4d ?
* Should we move more methods to the base class instead of modifying *this*?
* Should we integrate more methods from QuaternionUtil ?
* Should we follow the pattern operation(Quat4d q1, Quat4d q2, Quat4d result) ?
* Which methods are still missing?