Add support for TLS connections

See **examples/ExampleTLSClient.hs** and **examples/ExampleTLSServer.hs**.

 - Add **coTLSSettings** labeled field to **ConnectionOpts**

 - Switch from **GHC.IO.Handle** to **Network.Connection**

 - Allow TLS trust configuration with **TLSTrusted**/**TLSUntrusted**

To preserve the behavior of existing client code, unsecured TCP
connections are used by default.

TLSTrusted is the recommended setting where the AMQP servers support
it.  Using it will require that the AMQP servers identify themselves
with trusted certificates.  Private CAs and self-signed certificates can
be supported using mechanisms dependent on the trust store of the
underlying Operating System. This is out of the scope of this package to
explain, but examples are readily available for most Operating Systems.

TLSUntrusted is an insecure option and should never be used in
production.  Bypassing TLS certificate validation opens client code and
its users to man-in-the-middle attacks.  As described above it is
relatively straight-forward to trust a self-signed cert or a private CA,
so there is very rarely a valid use case for TLSUntrusted.