Refactor coupling of Quaternion/Euler in Object3D

As the coupling is required only for Object3D, simply privatize the
rotation Quaternion and Euler members, forcing updates when the
variables are updated.  This eliminates the need to have listeners for
each member that could possibly be updated, simplifying the types and
making it easier to reason about update side-effects.

Also enable the tests on all platforms.