(PUP-744) Ensure connections we create support at least HTTP 1.1

Adds a test to ensure we create connection that support HTTP 1.1 or
1.2.
(PUP-744) Allow keepalive timeout to be configurable

Previously the http keepalive timeout was hard coded to be 15 seconds.
This commit adds a new puppet setting, `http_keepalive_timeout`, which
defaults to 4 seconds. The reason for the smaller value, is because
Apache 2.2 and 2.4 have a corresponding server side keepalive timeout,
which defaults to 5 seconds.

If the client timeout were greater than or equal to the server timeout,
then the client may try to reuse a connection from the pool that the
server has already closed.
(maint) Enable http debug output

This commit adds a puppet setting, `http_debug`, enabling HTTP request
and responses to be written to stderr. It is disabled by default, and
should remain so in production environments, because it can leak
sensitive information.

If enabled, it displays information like:

    opening connection to puppetmaster...
    opened
    <- "GET /production/node/arcturus.luna.lan?transaction_uuid=ee7e258d-66d0-43f7-a96f-8fea7ea7d19c&fail_on_404=true HTTP/1.1\r\nAccept: pson, msgpack, yaml, b64_zlib_yaml, raw\r\nUser-Agent: Ruby\r\nHost: puppetmaster:8140\r\n\r\n"
    -> "HTTP/1.1 200 OK \r\n"
    -> "X-Puppet-Version: 3.6.2\r\n"
    -> "Content-Type: text/pson\r\n"
    -> "Server: WEBrick/1.3.1 (Ruby/1.9.3/2014-02-24) OpenSSL/1.0.1e\r\n"
    -> "Date: Fri, 18 Jul 2014 07:37:41 GMT\r\n"
    -> "Content-Length: 4202\r\n"
    -> "Connection: Keep-Alive\r\n"
    -> "\r\n"
    reading 4202 bytes...
    -> ""
    -> <response_body>
    read 4202 bytes
    Conn keep-alive