refactor: removed message_type typedef
add comment explaining the non-use of pimpl
add documentation structure skel
adding doc generated files to .gitignore
refactor: moving non-static embedded_server_socket functions to headers

This is the first step to refactor embedded_server_socket into a
template.
refactor: removing non-template static methods from http socket

This change is required to refactor embedded_server_socket into a
template while the parser interface isolation is still kept.

http socket == boost::http::embedded_server_socket
refactor: templatize socket type from embedded_server_socket

This change is required to allow the reuse of same implementation to
different socket types (such as pure TCP and SSL).

Also, as suggested by Bjorn Resse, if the user cannot guarantee
synchronization of calling async operations, it is crucial to allow
some kind of customization point that will let the user to add implicit
synchronization (such as asiomq::basic_queue_socket[1]).

This design mirrors the asio's ssl::stream[2] choice of templatizing the
socket type itself rather than the Protocol.

[1] http://sourceforge.net/p/axiomq/code/ci/master/tree/include/axiomq/basic_queue_socket.hpp
[2] http://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/reference/ssl__stream.html
readding spawn.cpp, which was removed by accident
new constructor to embedded_server_socket that forwards socket's args
bikeshedding: renaming receive_* methods to read_*
generalize message into basic_message

The previous message symbol is now a typedef that expands to a structure
whose definition is the same definition from the message symbol before
this commit.

TL;DR: It's backwards compatible (but only API, not ABI).
fix: message arg in async_write_message is now const
new error code to represent streaming attempts on usupported channels
refactor: outgoing_state simplified
add write{_metadata,,_trailers,end_of_message} implementations
refactor: renamed direction-dependant write_continue operation

Every operation that only makes sense in one direction should be
appropriately be prefixed with "incoming_request" or
"outgoing_response".

Other prefixes that might be used in the future are "outgoing_request"
and "incoming_response".
refactor: write_message -> outgoing_response_write_message

Besides the name change to reflect the fact that can only be used in
outgoing response mode, the arguments were also refactored and
message.start_line is no longer used.

This change is the first in a series to eliminate the need to parse
start_line and make consistent use of the message concept by no longer
requiring "polymorphic" handling. All content-sensitive data is passed
when the context is in use.
refactor: write_metadata -> outgoing_response_write_metadata
refactor: read_message -> incoming_request_read_message

This change is the last preparative change before I proceed to remove
message.start_line.
removed message.start_line