(re-apply) let LoadFieldNode implement Canonicalizable.Unary
let AddLocationNode implement Canonicalizable.Binary
let ArrayLengthNode implement Canonicalizable.Binary
use default methods to select Canonicalizable behavior
small cleanup in UnsignedMathSubstitutions
added listener for nodes being added to a graph; consolidated all node event listeners into new NodeEventListener interface and made registering such listeners work in a try-with-resources statement so that de-registration is automatic

--HG--
rename : graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/util/HashSetNodeChangeListener.java => graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/util/HashSetNodeEventListener.java
use oops_do to modify saved hsail state
Contributed-by: Tom Deneau <tom.deneau@amd.com>

--HG--
extra : rebase_source : 2cad3e75d83bb8f5c88ce6b8412561564537b1bd
extra : histedit_source : f3079bb18bb93667a0a5e904fe226cc8e97e3e3b%2Cccc88d1b0bb70f8725f4f3a956b6fc108f086fb0
Respect the VM's wish to record non-safepoint debug info

--HG--
extra : rebase_source : af6db5bccb4f5e69aad9947b095a4ebf352a7014
extra : histedit_source : 934fa3dddc35fde3580b74ce5349da86d1e91fe1
Add .recommenders (Eclipse recommanders) and test.[0-9]+.er (Solaris Studio analyzser) to .hgignore

--HG--
extra : rebase_source : 179d54d084d981b20385955ed0dad9d2d818bbff
extra : histedit_source : e89a4f17fb4917a158f4983d79d5e4f33a55929b
Update findbugs (old version is gone from sourceforge)

--HG--
extra : rebase_source : 193512ef5678a06ebf4638775f30a192dbb5846a
extra : histedit_source : 646b7c0a9a1a9643673c15ec7636dddc94bbed32
move removeIfUnused from CanonicalizerTool to SimplifierTool
returning null Canonicalizer.canonical replaces usages with null
refactor more Canonicalizable implementations to not add new nodes to the graph
make MathIntrinsicNode a UnaryNode
small cleanup in ShortCircuitOrNode
new constructor (with stateBefore) for AbstractDeoptimizeNode
change some node types from Canonicalizable to Simplifiable
let CanonicalizerPhase handle replacement with null in GuardNode.canonical
new constructor (with stateAfter) for StoreFieldNode
new constructor (with nullCheck and stateBefore) for ReadNode