Add quaternions

Improve vector operation generators

Fix vector function generator

Refactor namespaces and more quat ops

Namespace fixes

More quat operations and tests