http_server: improve handling of client-triggerable socket errors

We do not attempt to write HTTP responses for socket errors if
clients disconnect from us unexpectedly.

Additionally, we do not hide backtraces EINVAL/EBADF errors, since
they are indicative of real bugs which must be fixed.

We do continue to hide hide EOF, ECONNRESET, ENOTCONN, and EPIPE
because clients (even "friendly") ones will break connections due to
client crashes or network failure (which is common for me :P), and
the backtraces from those will cause excessive logging and even
become a DoS vector.
test_util: fix encoding test for Ruby trunk (2.1.0dev)

As of r40610 in ruby trunk, internal encoding is ignored if
external coding is ASCII-8BIT (binary)

ref: r40610 http://svn.ruby-lang.org/repos/ruby/trunk