Fix the way rover wheels rotate when being attached.

In the process replace the quaternion code that only works
for nodes oriented in 6 hard-coded directions.
Destroy and re-create the CollisionEnhancer object when grabbing/attaching.

This object contains the current position of the part in a private
field and in some circumstances resists it being changed. The only
way around this seems to be to delete and re-create it as needed.

Specific example of bad position: grabbing a rover wheel when on ground.