We can sharpen the range of a AddRec if we know that it does not

self-wrap and know the symbolic iteration count in the loop. If we can

evaluate the value of AddRec on the last iteration and prove that at least

one its intermediate value lies between start and end, then no-wrap flag

allows us to conclude that all of them also lie between start and end. So

the estimate of range can be improved to union of ranges of start and end.

Introduced limit on SCEV size to gain control over compile time.