Lengths are specified as lengths on the command line.
Unlike the --unit= option, the tolerance parameters of length type may only use standard lengths. Perhaps user-defined lengths with --unit= should also be forbidden. Otherwise, the validity of command line arguments depends on the source in a rather strange manner. One difference between the tolerance parameters and --unit= , though, is that the argument to --unit= should be _just_ the unit, and not a complete length. Anyway, this is something to think about later...
Anyway, it feels good to have factored out the interpretation of length parameters from the main function (it is now located in ShapesScanner::strtoLength instead).