Revise how TLS connections are negotiated.

Now we explicitly enable TLSv1.2, TLSv1.1 and TLSv1.0 where they are supported.
We continue to perform only one fallback, to SSLv3.

In a follow-up we can make TLS configurations user-accessible, and allow the
application to limit which versions are used.
Merge pull request #1087 from square/jwilson_1012_tls_12

Revise how TLS connections are negotiated.