Add support for abs() to ConstantRange. This will allow to handle abs select flavor in LVI and I think it will also come in handy for srem implementation.
The implementation is slightly tricky, because a) abs of signed min is signed min and b) sign-wrapped ranges may have an abs() that is smaller than a full range, so we need to explicitly handle them.