Move the furniture around some more.

Mostly just moving things around, with minor changes to behavior.

 - Instead of walking through all classes twice (once for verification,
   once for optimization), we now walk through them once and do both
   operations on a given class before moving on to the next.
 - If verification and optimization were disabled, the VM used a special
   "no fork + exec" path.  It adds complexity for little benefit, so
   it's gone.
 - Reduced the amount of stuff being passed as arguments through multiple
   layers of functions.  Notably, a pointer to a read-only lookup table
   is now accessed via a global.
 - The PROFILE_FIELD_ACCESS define now just blocks the quickening of
   field accesses instead of blocking all optimizations.  (Not sure this
   is worth keeping around.)

Change-Id: I7f7c658e3b682c7251cdf17cae58d79bd04ba2a0
5 files changed