This completly changes the way modal numinput is handled. Now, edited one is basically a simplified (ASCII-only) string, which then gets unit- and py-evaluated to get a float value.
We gain many power and flexibility, but lose a few "shortcuts" like '-' to negate, or '/' to inverse (if they are really needed, we still can add them with modifiers, like e.g. ctrl-/ or so).
Features:
- units (cm, ", deg, etc.).
- basic operations from python/BKE_unit (+, *, **, etc.).
- you can use '$' as placeholder to be replaced by current value (so if you have e.g. '2' as current value, '$*3' will give you 6, '$**-1' will give you 0.5, etc.).
- you can navigate in edited value (left/right key) and insert/delete chars, e.g. to fix a typo without having to rewrite everything.
Notes:
- Did not touch to how values are shown in header when modal numinput is not enabled (would do that in another commit), so this is still quite inconsistent.
- Added back radian support in BKE_unit.
- Added arcminute/arcsecond to BKE_unit.
Related to T37600.