Implement Ruby 1.9 behavior for Time#<=>
Use Perl's Hash for String#hash

Replace String hash function again, use Perl's Hash instaed of
SipHash-2-4.  Perl's Hash is 10**5 times faster than
Murmur2/SipHash-2-4.  Our understanding is Perl's Hash is not broken in
regards to HashDoS attack[1] so far.

For the case Perl's Hash is broken in the future, you can use
SipHash-2-4 by passing "jruby.siphash.enabled=true" system property
(false by default.)

[1] http://2012.appsec-forum.ch/conferences/#c17
Merge branch 'master' of jruby.org:jruby
Incorporate MRI's version of fix for MRI issue #7046.
Update psych .rb files to latest.
Update native bits of Psych and get updated tests in and passing.
Tweak tests for things newly passing and things commented out.
Add missing psych files.
Fix Psych dumping of exceptions. See psych/psych#103.
Rework the previous logic (calling #to_path) for #393. Also, fix #399.
Merge pull request #387 from jballanc/master

Thanks!
Fix #382

Propagate blocking mode through to the actual flush of written
data. This allows partial writes to succeed.

The given example runs similar to MRI now, eventually raising a
WaitReadable SSLError. It does it somewhat sooner in JRuby, so
there may be some additional improvement necessary here, but it
does at least not get stuck looping forever as in the original
report.

I also cleaned up use of "nonBlock" versus "blocking" boolean
values throughout SSLSocket, making them all "blocking".
Avoid perf-damaging extend of WaitReadable and WaitWritable.

In 1.9 mode, SSLErrors are created and then extend either
WaitReadable or WaitWritable if the error reason was that a
nonblocking read or write would block. Because extend changes
class hierarchies and creates new types, performance is impacted.
This patch makes a change similar to EAGAIN readable/writable in
normal IO by creating SSLErrorReadable and SSLErrorWritable that
simply extend SSLError and include the related module exactly
once.
Fix JRUBY-6999

Encoding from Windows-1252 to UTF-8 results in transcoding error

The jcodings Encoding for Windows-1252 is a replication of the
ISO-8859-1 Encoding, which caused it to use the wrong Java Charset
it inherited from ISO-8859-1. I modified the logic that negotiates
what Charset to use to make an extra effort to get the Charset
that actually corresponds with the encoding. It's not a great hack
but it will go away as jcodings fixes up things in the future.
Fix one of reported bug in JRUBY-6980. SystemProprtyCatcher doesn't catch concurrent setting.
Adds org.jruby.embed.clear.variables attribute for JSR223. This idea has been suggested in JRUBY-6980.
Fix #391.

RubySpec is pending. https://github.com/rubyspec/rubyspec/pull/162
Remove unused tmp and prevent ClassCastException is to_path does not return a String
Simple comment commit because I find myself asking which circumstances default_internal can get set every 4-5 months
Make matching methods with MRI versions for simpler comparisons