Remove dimensionless

- `Dimensionless` is no more, use `double`;
- The parameterless constructors in `R3Element` and `Quaternion` are no longer default, since `double` components are not initialised by default;
- `x.Pow<2>()` is now written `Pow<2>(x)` so that consistency with `double` can be maintained; it statically expands to multiplications for |x| ≤3;
- `Action::SIUnit()` is now written `SIUnit<Action>()` so that consistency with `double` can be maintained.
No return by reference