Encode strings as UTF-8 when it has wide characters so as the server won't crash
prevent the harakiri test from taking 3 minutes on win32
Merge pull request #431 from wchristian/win32_harakiri_hang_fix

prevent the harakiri test from taking 3 minutes on win32
Merge pull request #429 from plack/server-encode-utf8

Encode strings as UTF-8 when it has wide characters
Restore --keep-stderr for Handler::FCGI.

Commit cafa5db broke --keep-stderr for Handler::FCGI: psgi.errors ended
up being set to an unopened filehandle, so errors disappeared into
nowhere.

The call to FCGI::Request was always wrong: that function behaves like
'open' in that it points the passed-in filehandles at the FCGI streams,
so it never makes sense to pass the same filehandle twice. If it had
done anything it would have copied the response to the error log; in
fact it did nothing.

Also change the documentation to reflect reality: --keep-stderr has
always send psgi.errors to STDERR, not STDOUT.
Merge pull request #432 from mauzo/mauzo/keep-stderr

Restore --keep-stderr for Handler::FCGI.
Optimize Plack::Response->finalize. use HTTP::Headers->scan()
Merge pull request #433 from kazeburo/master

Optimize Plack::Response->finalize
Document mount() performance
Make URLMap location match faster by pre-compiling the regexp

Simple app with 100 mount() calls, before: 0.8 msec -> after: 0.19 msec
make HTTP::Message::PSGI complain loudly about invalid PSGI responses

Without this, HTTP::Message::PSGI will silently suppress invalid responses,
leading to confusing error messages from inside Plack::Test::MockHTTP.
1.0030
Merge pull request #437 from wchristian/http-msg-invalid-response

make HTTP::Message::PSGI complain loudly about invalid PSGI responses
cleanup
document how response_cb works with $writer
POSIX::setlocale fails on system without locales (Android)
Check d_setlocale before calling POSIX::setlocale
Merge pull request #442 from dex4er/porting/no_locale

POSIX::setlocale fails on system without locales (Android)
use header_name attribute in Runtime middleware
encode path?foo+bar as { "foo bar" => "" }. not { "foo" => "", "bar" => "" }
Mojo::Parameter, ruby's Rack, python's WebOb and node.js parse query_string in this way