LPS-35675 Refactor: Rename isValidValue() as isValidRangeValue() and put more logic inside

This will allow adding more precise logging in the next commit
LPS-35675 Add logging for isValidRange()

We consider that it's important to log both the success and the failure. The only case we don't log is when there isn't any value set for the property in the rule.
LPS-35675 Abstract out the boolean validation to add logging to it

Also extract method getLogStringBundler() to avoid duplicating some code in both loggers.
LPS-35675 Abstract out the boolean validation to add logging to it
LPS-35675 Rule evaluation should continue even if there is no OS set because we have other properties too
LPS-35675 Log the case (which in theory should not happen) in which the device information is not available.

This should help support identify this weird case quickly if it ever happens.
LPS-35675 This is a Spring initialized singleton, put logic in the constructor instead
LPS-35675 Massage the text so it's more consistent