updated status codes according IANA Status Code Registry

The IANA registry:
http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
refactor: *_adaptor::socket_type -> *_adaptor::next_layer_type

The function name was already different to avoid confusion over which
socket is which. The typedef name should (and is now) also reflect this
decision.
removed some obsolete comments
refactor: changing how ~polymorphic_socket_base is declared

Making the destructor pure abstract to ensure the class will never be
instantiatable.

More details follow on this post:
http://eli.thegreenplace.net/2010/11/13/pure-virtual-destructors-in-c/

The change isn't required for now, but might be needed in the future if
some changes in the design come up (and is a good practice too?).
refactor: promoted header_value_any_of to public API

Also changed the function to make use of string_ref in the argument
for the predicate function.
improved code to handle multiple requests at one connection
deferred should_keep_alive query to the last moment

HTTP/1.1 doesn't seem to prohibit the connection header to appear on
trailers, then this query should be done after the trailers are
received.
removed sync versions of all operations.

They weren't implemented, but the reason for continuing to not
implementing them comes from the fact they were designed at a time
when the asynchronous model didn't exist. With the asynchronous model
available, the user can freely use a block completion token to write
all algorithms synchronously, like documented in the N4045 paper.
add stream_finished error_code
improved basic_socket to correctly signalize about finished streams

This is useful to give the user the chance to close the socket, which
is very important in HTTP/1.0 connections, where the end of the body is
marked by the event of closed connection.