Optimize Sub/Sub and Sub/Add operations

Handles cases like:
 * y - (x + y) = -x
 * x - (x + y) = -y.
 * (x - y) - x = -y.
 * x - (x - y) = y.

Bug: 301612598
Fixes: 301612598
Test: art/test/testrunner/testrunner.py --host --64 -b --optimizing
Change-Id: I2f506b4a4903774baf39e8d2c681db6a59efeb2c
2 files changed