Complete implementation of CFEngine protocol over TLS

Client now correctly establishes a TLS session with server. During the
handshake they exchange both-ways in-memory certificates, self-signed
with their private key, the same key used in the previous protocol SAUTH
command. So the trust model has not changed, i.e. if the client is
bootstrapped to that server, the public key each peer is stored in the
other peer's ppkeys directory, and will be checked if it matches to the
one sent via the TLS handshake.

Various refactoring took place:

 * Union in conn_info is removed since we always need the socket file
   descriptor.
 * Superfluous struct fields were thrown away.
 * Lots of logging changes.
 * SSL context and other structures are initialised only once
   to avoid avoid allocating on every connection.
 * Naming conventions and code style was changed to match CFEngine's.
 * Compatibility of server with old clients was tested and implemented.
 * Refuse to start if no public/private keys are found, since the
   networking code was failing subtly without those. TODO rethink this
   for the non-bootstrapped agent case, where keys are absent.
 * CAUTH, SAUTH were deprecated from the new protocol.
   TODO deprecate all secure command versions, i.e. S*.
 * Separated tls functions in different files depending on their
   usage: client, server, generic.