reimplementation of QuaternionGeneric binary operators as friend functions