Substitute constants with modular equivalents more safely
* Modular arithmetic sometimes lets us narrow constants down,
especially with signed arithmetic. We now update the receiving
LVAR's type conservatively when there are multiple uses; otherwise,
conflicting type information results in spurious dead code
* Test case by Eric Marsden.
* Reported by Eric Marsden on sbcl-devel (2013-04-18).