Robust check for $lowerLimit and $upperLimit

Since we can't use type hinting for scalar values we have to manually
check the boundaries of the domain in the constructor.