ranges: be more flexible about divides
I have some upcoming changes where this will matter more but it might
matter a little for user_data2 even now. In the original code if you
had:
__smatch_absolute(0-u32max / 2);
Then it would say the result is still 0-u32max because we really don't
know anything about the left side of the divide. In the new code it will
still say that but for user range lists it maybe says it it less. Also for
the upcoming absolute range list code it will say less.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>