Introduce EnvUsePosition for liveness analysis.

Normal and environment use positions are held in separate
lists and the code never mixes them together. By using two
separate classes, we can reduce complexity and avoid an
unnecesary data member, reducing the memory usage.

Tracking allocations for a certain big app, the peak arena
memory usage is
  before:
    MEM: used: 79245960, ...
    SsaLiveness    31221600
  after:
    MEM: used: 78754024, ...
    SsaLiveness    30729664

Test: testrunner.py --host
Bug: 34053922
Change-Id: I02d3c9f564bbe3b1da0e03c33cf7c0f810f235dc
5 files changed