Fixing unit parse for powered numbers per 100<x>

WEB-9116 #time 4h
This is the "Stack level too deep" problem we were having. It's
quite a rare case for it to happen. It happens only when the
numerator of a unit is a power (e.g. kg^2) and the denominator
starts with a 100<x> (e.g. 100l). Due to string-matching, it
incorrectly assumes that this unit is a rational number.
When doing this, it never allows the Unit's constructor to fully
complete because instead of being able to instantiate a
scalarless (i.e. scalar=1) unit, it continually creates scalar
values of e.g. 2/100, which equals 1/50. Hence it never settles.

This fixes it.

Example failure reproduction:
```
a = Unit("1.24 kg/l")
b = Unit("40 kg*l/100kg*ha")
a * b
```