Include vm.version in --version string.
Optimize key-based Hash access for empty hashes

This avoids performing the potentially expensive hash computation in
the event that the Hash is empty, as there cannot possibly be a match.
Conform to MRI behaviour for empty hashes

In the event that the `#hash` method has side effects, any optimisation
with respect to empty hashes will affect the results of the operations.

For MRI, the empty-hash optimisation seems to be applied everywhere in
2.0.0 and beyond. In 1.9.3 the #hash method is not called for #[] and
#key?, but strangely enough the performance is not improved for empty
hashes. In 1.8.7, the #hash method is always called even if empty.

This does not match the semantics of MRI exactly, as this avoids calling
the #hash method from #values_at in 1.9.3, but that would be slightly
more involved to implement.
Fix ServerSocket#accept_nonblock to return a correct Sockaddr

ServerSocket#accept_nonblock should return a Sockaddr with the remote port, not the local port.

This closes #1777
Fix minor bug in setNativeEnabled

The implementation of setNativeEnabled previously had a hard-coded
value of `false`, and ignored the actual value that the caller
passed in.
Add accessors for `nativeEnabled` to ScriptingContainer
Inline Adler32Ext

As an improvement, the new implementation does not rely on reflection
to adjust for a starting checksum. Instead, it uses adler32_combine, as
that computation is reasonably cheap anyhow.

Compared to Adler32Ext, the adjustment is also only performed when a
starting checksum other than the default is provided.
Inline CRC32Ext

Compared to the inlined version of Adler32, this one unfortunately still
relies on reflection for adjusting the starting checksum. This is due
to the fact that crc32_combine is much more expensive, and completely
dominates the runtime up to quite long byte lists.

However, in the event that the reflection trick stops working, we now
fall back to the slower approach, ensuring compatibility with an
unlikely future Java release where the internal CRC32 field name is
changed.

Compared to CRC32Ext, however, neither the reflection nor the slow path
is used when the starting checksum matches the default.
Use CRC-32 table from JZlib
apply enebo's comments on loadService refactor.
added jar dependencies to allow declare jar dependencies inside gemspec and download and install them during gem installation (works for bundler and gem install xyz)
fix comma
get the default hook lazy for bootstrapping
added jar dependencies to allow declare jar dependencies inside gemspec and download and install them during gem installation (works for bundler and gem install xyz)
get the default hook lazy for bootstrapping
new version
follow changes in pom.xml generation
refactor DateTime#jd
DateTime#jd using 0.5 instead of HALF_DAYS_IN_DAY.to_f
Tag OpenSSL test that hits broken END logic (#1814).