http_server: fix log message if using Base (no concurrency)

Telling the user worker_connections=50 when using the Base
concurrency model is misleading.
t0501: fix ambiguous shell construct for capture + subshells

Starting with "$((" can be ambiguous and confused for shell arithmetic.
t/test_isolate: update test dependencies

At least for the gems I'm most familiar with...
doc: some spelling fixes

Found with rdoc-spellcheck
tests: require sleepy_penguin 3.1.0 or later

We'll be making the XEpollThreadPool users depend on this, too.
stream_response_epoll: fix for unicorn 4.3.x

unicorn 4.3.x now calls shutdown() explicitly on the socket,
so we can't just rely on a dup()-ed FD to keep a socket around.
test_isolate: bump unicorn and kgio versions for testing

Users will pull the latest upstream, ensure things keep
working.
test_isolate: update deps for EM tests

async_sinatra and rack-fiber_pool had new versions since
we last updated.
fiber_pool: take Fibers from larger pools faster

Array#pop can be significantly faster than Array#shift on large
arrays (especially since we push into the Array).  This is
because Array#shift needs to shift all elements in the array,
and Array#pop only needs to shorten the array by one element.
The Fiber stack may also be hotter in CPU caches when we choose
the most-frequently used stack.
epoll*: favor shutdown(2) for keepalive timeout

Triggering Errno::EBADF is tricky in multithreaded situations
due to possible race conditions and yet-to-be discovered bugs.
shutdown(2) is also safe against apps the fork() internally but
do not execve(2) nor set FD_CLOEXEC.

n.b. calling fork() after pthreads are spawned may not be safe
on all platforms w.r.t. malloc, but /is/ the case for glibc on
GNU/Linux.
coolio+xepoll_thread*: use shutdown() for keepalive timeout

Triggering Errno::EBADF is tricky in multithreaded situations
due to possible race conditions and yet-to-be discovered bugs.
shutdown(2) is also safe against apps the fork() internally but
do not execve(2) nor set FD_CLOEXEC.

n.b. calling fork() after pthreads are spawned may not be safe
on all platforms w.r.t. malloc, but /is/ the case for glibc on
GNU/Linux.

Follow-up-to: commit a5b987619f4b793203f6a50e424fe98c5b0794ba
test_isolate: bump raindrops dependency

As usual, test with the latest released version to avoid
surprises.
thread_timeout: document additional caveats

Again, for the one thousandth time, timing out threads is very
tricky business :<
Rainbows! 4.4.0 - minor improvements

For epoll/Cool.io-based concurrency models, shutdown() is now
used to timeout keepalive clients to avoid race conditions.
Minor documentation improvements.
Rakefile: freshmeat.net -> freecode.com

freecode.com now requires HTTPS, too.
fiber/base: avoid negative sleep interval

Also clarify the code while we're at it.
Thanks to Lin Jen-Shin for pointing this out.

ref: http://mid.gmane.org/CAA2_N1unOXb7Z4Jr8oKoSLu266O9Ko4o=oWzAcMA1w3=9X74KA@mail.gmail.com
Rainbows! 4.4.1 - a minor bugfix for Fiber users

Fiber-based concurrency options avoids negative sleep
intervals.  Thanks to Lin Jen-Shin for pointing this out.
event_machine: properly defer body.close for async

Calling body.close in the normal write_response() code path
is incorrect, and only worked out of sheer luck with
Cramp and async_sinata.

This change allows stream(:keep_open) in Sinatra to work
properly.

Thanks to W. Andrew Loe III for the informative bug report
and reproducible test case.

ref: http://mid.gmane.org/CA+-9oNd1EFqsniPkkPTwu5opTCinbM7-2KHoXov7+y3LE4s4Tg@mail.gmail.com
test_isolate: bump eventmachine and sinatra deps

Always ensuring we work with the latest versions.
Rainbows! 4.4.2 - EventMachine async.callback fix

One bugfix allows stream(:keep_open) in Sinatra to work
properly.

Thanks to W. Andrew Loe III for the informative bug report
and reproducible test case.

ref: http://mid.gmane.org/CA+-9oNd1EFqsniPkkPTwu5opTCinbM7-2KHoXov7+y3LE4s4Tg@mail.gmail.com