Truffle/Instrumentation:
- Merge instrumentation support into the general execution context; remove separate Instrumentation interface and implementation
- Generalize the “tagging” mechanism for extensibility:  the enum PhylumTag is now an interface, and the standard tags moved to the new enum StandardTag
- A new “trap” mechanism interrupts program execution at any probed node holding a specified PhylumTag; this replaces some other special-purpose code.
- Refine several interface by factoring out callback methods and simplifying collaboration among key implementation classes.
Merge with d556971b409ca9f5ff13900d8b7b82549fd1f17a
verbose assertion in ComputeInliningRelevance
removed unnecessary mutex
HSAIL: fixed deopt bug; cleaned up C++ code
Contributed-by: Tom Deneau <tom.deneau@amd.com>
Simplify code generation of reinterpret-memory.

--HG--
extra : rebase_source : 305372770b3811b46e53f2e8ee376a57d23fd1cd
moved assertEquals and MultiCauseAssertionError from GraalCompilerTest to GraalTest
made GraalVerboseTestListener eagerly print stack trace for failure which is useful if the VM crashes before completing all unit tests
clean up frame states during FrameStateAssignmentPhase
Merge.