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.
I totally hate `using` in a function body.  It's a lot of visual noise.  If you don't want a `using` at top-level, you've got to write `quantities::SIUnit<Mass>()`.