Add support for try catches in LSE

We now run LSE if there are try catches in the graph. We invalidate
values at the beginning of catch blocks since we can't know for sure
which instruction was the one that threw. As a note, finally blocks
are also considered catch blocks so we will invalidate at the
beginning of those blocks as well.

Test changes:
* 004 had to be changed since we are removing the dex_pc:3 from
  the StackMap (the array itself is never instanced).
* 061 had to be changed to actually trigger the OOM.

Bug: 227283233
Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b
Change-Id: I79a85447069895b61fb48dde90f24d675d504873
8 files changed