Standardize on lea for address computations (including sp adjustments)

Summary: It's the same size in every situation we use it in, it doesn't modify
eflags, and Intel explicitly recommends using it for values that will be used
as pointers in loads or stores later on down the line.

Reviewed By: @edwinsmith

Differential Revision: D1631697
Tweak to enable more refcount optimizations

Summary: When a value is known to exist in many places, observeValue() will not
insert any IncRef before a DecRef. That's bad because it ends up
preventing some IncRef/DecRef pairs from being eliminated because the
IncRef is pushed down past the DecRef.  This diff makes sure that we
always drop an IncRef before a DecRef, which then enables more
IncRef/DecRef pairs to be eliminated.

Reviewed By: @swtaarrs

Differential Revision: D1631498