Naming rules for manipulated objects and structures.

Previously, there were ambiguities between sessions, transactions and requests,
as well as in the way responses are noted ("resp", "rep", "rsp").

Here is a proposal for a better naming scheme.

The "session" is above the transport level, which means at ISO layer 5.
We can talk about "http sessions" when we consider the entity which lives
between the accept() and the close(), or the connect() and the close().

=> This demonstrates that it is not possible to have the same http session from
   the client to the server.

A session can carry one or multiple "transactions", which are each composed of
one "request" and zero or one "response". Both "request" and "response" are
described in RFC2616 as "HTTP messages". RFC2616 also seldom references the
word "transaction" without explicitly defining it.

An "HTTP message" is composed of a "start line" which can be either a
"request line" or a "status line", followed by a number of "message headers"
which can be either "request headers" or "response headers", and an "entity",
itself composed of "entity headers" and an "entity body".Most probably,
"message headers" and "entity headers" will always be processed together as
"headers", while the "entity body" will design the payload.

We must try to always use the same abbreviations when naming objects. Here are
a few common ones :

  - txn : transaction
  - req : request
  - rtr : response to request
  - msg : message
  - hdr : header
  - ent : entity
  - bdy : body
  - sts : status
  - stt : state
  - idx : index
  - cli : client
  - srv : server
  - svc : service
  - ses : session
  - tsk : task

Short names for unions or cascaded structs :
  - sl  : start line
  - sl.rq : request line
  - sl.st : status line
  - cl  : client
  - px  : proxy
  - sv  : server
  - st  : state / status

