Units: a new pack for units and quantities

Thank you very much, I’ll also add support for ** on my end so that user are not surprised, probably switching to it by default.

Just a couple of minor issues you might want to consider:

  1. Q-expresssions (if I can call them that) of the form Var is Exp, where ground(Exp) is true, will be treated (unnecessarily) as a constraint. It doesn’t impact it’s logical correctness but constraint “compiling” adds overhead.
  2. Given this upgrade, do you really need {...} Q-expressions anymore? (If not, keep it simple.)