Adding control flow on connections refused

When many connections were being refused, the load balancer
would impose no good control flow mecanism on incoming requests.
After a while, demand can overtake the process and grow the
message queue until the VM goes out of memory.

This patch adds a counter of refused connections (happens when
the server is down); if too many connections are refusd in a row
(as many as the possible sockets), some of the requests will be
blocked and will return {error, offline}.

Whenever a successful request is made, the counter is dropped.

The patch also contains a few minute optimizations for record
assignment, gaining minimal amounts of speed.
Changing mechanism of the load balancer

Whenever a server would listen to TCP connections but never accept
them, the lhttpc application would leak a ton of processes until
the virtual machine is taken down.

This was due to the way setting up connections was being done
within the load balancer. This would lead to many milliseconds of
delay for each socket connection attempt, and an eventual queue
build-up would happen in the load balancer.
Because requests freely spawn processes, this ended up having
too many requests that the LB cannot deal with.

This fix changes the structure around so that each client is
responsible of setting their own socket and connection, enabling
the load balancer to easily deny connections to newer processes
when older ones are still stuck. Setting a good request timeout
can then insure that slow requests won't starve the system.
Updating readme to add a warning about prescribed use case of this branch of lhttpc.
Attempt at fixing a possible process leak

Yoshihiro Tanaka found that when lhttpc:request closes a worker
due to a timeout, it's possible that it happens after the port
is unlinked in prim_inet:close, but before it is properly closed.

This results in orphaned sockets/ports being left hanging in the
ether.

This fix attempts to wrap lhttpc_sock:close commands around a safe
build that should resolve it.

A potential fix would have been to have the manager monitor the
sockets itself, but this wouldn't have worked if the socket is new
and the manager has never seen it before, hence the current fix.
Attempt to fix port leak, also fixed clean up of sockets.

There is a possibility of port leak when processes are killed using exit/2 BIF when they are connecting/closing sockets, executing in prim_inet module.
Also fixed the format of remaining free sockets in terminate/2.
Merge branch 'feature/port_leak_fix2' of github.com:hirotnk/lhttpc into socket-leak

Conflicts:
	src/lhttpc_sock.erl
fixing doc

Adding the ReqId to requests broke documentation building.
This fixes it.
Merge branch 'master' of git://github.com/ferd/lhttpc