update quaternion.jl with usage of the Quaternion type

import Base: promote_rule added, because it doesn't work without that.
Merge pull request #4321 from ggggggggg/master

update quaternion.jl with usage of the Quaternion type