Remove invalidate from CFGBuilder and resetCFG from IRScope since these actions are not possible
Fix another pass using invalid field to see if pass has been run
Split AddLocalVarLoadStoreInstructions into two passes

* This is cleanup as indicated in commit 06304620b

* Tweaking this pass, and how/when it is run will come in
  later patches that will clean this up.

* The split exposed a bug in the dyn-scope optimization.
  With the split, more scopes had both AddLocalVarLoadStoreInstructions
  and OptimizeDynScopes run on them and crashed some specs.
  This fix ensures that the two passes can run in either order
  without corrupting the scope.

* Discovered that we need to preserve dyn-scope for scopes
  that contain 'Kernel.local_variables'. Did the conservative
  thing in CallBase.java.
Clean up compiler pass run logic a bit.

* Keep track of what passes have run in IRScope.

* Updated CompilerPass.run to:
  - Update this list of passes,
  - Check if the pass has been previously run.
    Added a force parameter (for a future scenario) for when
    we need to re-run a pass.
  - Provide default implementations of previouslyRun and
    invalidate.

* Individual passes override the default implementations where
  necessary (for example, where invalidation is not possible
  because the pass is not reversible).
Refactor common code out of prepareForInterpretation/Compilation

* Since we can now safely attempt to run passes multiple times
  (and they won't run if they have previously run and haven't been
  invalidated), always attempt to run interp passes before
  JIT passes. For the normal interp+JIT case, this works properly.
  For the threshold=0 case, this will also work properly since the
  scope will be brought to the same state as if the interp had run.
Merge branch 'master' into non-indy-jit

Conflicts:
	core/src/main/java/org/jruby/ir/IRScope.java