fixed issue 1695
Fix changing encoding on shared ByteList
* Keep consistent Gem version using '.' instead of '-' as delimiter.
String#rindex should handle matchdata strings

A string extracted from a matchdata object shares the same
byte array as the string it was matched against. When doing a
rindex between a string from a matchdata and the string the matchdata
was matched against the same byte array is passed into ByteList.memcmp
which will always return 0 as ByteList.memcmp just checks for equality
of the byte arrays.

I fix this by passing bytes() instead getUnsafeBytes() into the
ByteList.memcmp method so that the byte arrays are different.

Fixes #1688
fixed issue 1517
change test case
add test case
Make behavior of Array#eql? more closely match MRI
Fix typo
make the layout lazy on StructByReference to allow to use self.ptr inside the layout. possible fix for #1729

Conflicts:
	spec/ffi/managed_struct_spec.rb
[GH-1726] - File.read should raise an Errno::ENOENT when the file is an empty String.

File.read it's currently raising EncodingUtils.java:597:in `encAscget':
java.lang.ArrayIndexOutOfBoundsException: 0

But it should raise an Errno::ENOENT to keep the MRI compatibility.
[Truffle] Restore basic support for set_trace_func.
[Truffle] Tweaks to tracing.
[Truffle] Tweaks to set_trace_func.
[Truffle] Restore a basic version of set_trace_func.
Fixes #1743. Use nil 1.9+ for type in set_trace_func
Beginnings of instrumented tracing
Revert "[Truffle] Restore a basic version of set_trace_func."

This reverts commit 077a4ffb881e62b4d1fab78270a81cc500c0c252.
More instrumented tracing added for class/sclass/module + refactoring of IRBuilding of those things
Move knowledge about definition of node types into the node