update quaternion.jl with usage of the Quaternion type

import Base: promote_rule added, because it doesn't work without that.