Use asConstant() instead of asJavaConstant() where possible.

--HG--
extra : rebase_source : 37f7b4344c5f9f5c95e3262635266a8a2b2c10ff
extra : __touch-noise__ : 2391690436
disabled additional pylint checks to workaround false positives
Add missing javadoc.

--HG--
extra : rebase_source : 64896afc9405f38ff198f36d1316135ea0779af5
Generalize NULL handling to work on arbitrary pointers.

--HG--
extra : rebase_source : 3b4eb9b8d36b46d3bac796dcd4dd25f2993190b6
extra : amend_source : c554e064f874644b9a4202e9c564bbeca0577558
Introduce isNull() method for metaspace pointers.

--HG--
extra : rebase_source : aee56af0a48ea641998c2dab4aa018f28dace0e8
extra : amend_source : 4bc9b2fc135172d40fcb91294860f5150f4e879e
ClassSubstitutions: macro for Class.isAssignable

--HG--
extra : amend_source : e669c4ddeff516d383d122b37febabf083fc5a84
ClassSubstitutions: use .isNull on klass pointer
Truffle-DSL: fixed bug in source ordering when compiling with JDT.
adds ability for substitution guards to have a constructor with an Architecture argument
added extra flags enum to AMD64 to drive code emission features (currently contains UseCountLeadingZerosInstruction and UseCountTrailingZerosInstruction)
moved lzcnt/tzcnt nodes and substitutions to com.oracle.graal.replacements.amd64
Contributed-by: Igor Veresov <igor.veresov@oracle.com>

--HG--
rename : graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CountLeadingZerosNode.java => graal/com.oracle.graal.replacements.amd64/src/com/oracle/graal/replacements/amd64/AMD64CountLeadingZerosNode.java
rename : graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CountTrailingZerosNode.java => graal/com.oracle.graal.replacements.amd64/src/com/oracle/graal/replacements/amd64/AMD64CountTrailingZerosNode.java
rename : graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotspotGuards.java => graal/com.oracle.graal.replacements.amd64/src/com/oracle/graal/replacements/amd64/AMD64Guards.java
rename : graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/IntegerSubstitutions.java => graal/com.oracle.graal.replacements.amd64/src/com/oracle/graal/replacements/amd64/AMD64IntegerSubstitutions.java
rename : graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/LongSubstitutions.java => graal/com.oracle.graal.replacements.amd64/src/com/oracle/graal/replacements/amd64/AMD64LongSubstitutions.java
LoadHubNode should always use StampProvider stamp
Minor pointer stamp related fixes