Native units support
Often values in fields are in some units. Either dynamically selected ones, or hard-specified. They are definitely a part of documentation and implementations, so they definitely should be added to `ksy`s. 

Currently the only way to add them are freeform fields (the ones prefixed with a dash) or `doc`s or comments.

But units and quantities in fact are supported in different programming languages. Some with 3rd-party libs, some units are available in stdlibs. The libs do conversions automatically and protect programmers from unit-related errors.

So it may be useful to have a built-in units support. Units are to be added into `unit` property. That property should allow both hardcoded and selectable (`switch-on` - `cases`) units. By default the property is ignored when generating source code (i.e. C++ or python), but takes effect when generating docs `i.e. doxygen or docs in source code`. But a user may enable creating unit-typed code with an argument. The argument is the name of one of the supported unit types libs, for example `pint` for python. Internally in the compiler it maps into an object `unitLibs` in `RuntimeConfig`, containing references to `UnitLib` objects for each language.  `UnitLib` is an object defining remapping between KS unit names into library-specific unit names. It has a `wrap(KSSpecificUnit unit, string expressionToBeWrapped, UnitConversionType type)` method, wrapping the passed expression into the code creating specific unit object. `KSSpecificUnit` is the type for KS specific units. SI prefixes should be supported. `UnitConversionType` is a enum defining the type of conversion. At least 2 values are needed, one for assigning a unit, another one is for conversion into that unit.