reuse the linear operations in quaternions. Also mark some constructors explicit to better spot coding errors.