Mark graphs as always throwing alongside methods

This CL removes the need of using an extra boolean
(`did_set_always_throws`) as we already encode the information in
HasAlwaysThrowingInvokes after aosp/2153582.

Also, if we know that a method always throws in the particular
instance that it is called, we can mark it as such. This is an
improvement versus using the dex instructions as methods like:

int foo(int a) {
  if (a == 0) { throw new Error("a is 0!"); }
  return a / a;
}

will be marked as always throws if called as foo(0).

Test: art/test/testrunner/testrunner.py --host --64 --optimizing -b
Change-Id: I5368878d0023775c53028a5cccd4a1111b50f60e
3 files changed