Remove unused main_thread parameter from Thread::create.
Fixed a problem where splatted nil would get converted to [nil].

Fixes #2926.

Previously, the JIT code was not checking for nil, when trying to cast
the stack value to an array, thus creating an array with just nil in it.
This fix ensures an empty array gets created instead.

With help from @dbussink, and recorded it live on an hangout!
Merge pull request #2938 from razielgn/splat-jit-fix

Fixed a problem where splatted nil would get converted to [nil].
Merge pull request #2935 from southerngs/thread-code-cleanup

Remove unused main_thread parameter from Thread::create.
Revert "Close handles opened with dlopen()"

This reverts commit 699b03ad39468a1ef8129c333f78d2ee0c338277.

This was causing the profiler tooling extension to be unloaded
so that running the profiler with eg:

  rbx -Xprofile -e 'p 1'

would cause an EXC_BAD_ACCESS on OS X Maverics at least.

Generally, we don't want to dlclose() a library that we loaded
and intend to use. We may address this by passing RTDL_NODELETE
to dlopen(), but that mode flag is not universally supported and
was added later. If we don't intend to unload the library, there's
no reason to dlclose() it before process exit.
Fixed reference_p() to return false for NULL.

This indirectly fixes one of the issues exposed in the following:

https://github.com/sparklemotion/nokogiri/issues/1047
https://github.com/rubinius/rubinius/issues/2844

This is not the root cause of the Nokogiri-relate segvs, which
appear to be Nokogiri (libxml2) releasing data for a node while
a Data object wrapping it is still reachable and hence is having
mark() called on it.
Replace double spaces to single one.
Replace rake to 'rake'.
Merge pull request #2945 from yui-knk/fix-typo

Fix typo
Changed check for libc version to use $SHELL.
Added spec on Array#drop after a shift.
Fixed Array#drop acting incorrectly after a #shift.
Merge pull request #2946 from razielgn/array-drop-shift-fix

Fixed Array#drop acting incorrectly after a #shift.
Added a C-API lock for Nokogiri.

This makes whatever the issue is in

https://github.com/sparklemotion/nokogiri/issues/1047
https://github.com/rubinius/rubinius/issues/2844

to not manifest during more than 1 hour of 100 threads running in
the repro script in the Nokogiri ticket.

If a bug never appears, does it exist?
Don't use missing config.rb keys. Closes #2949.