Implement ALPN in tlslite.

* Update SSLClientSocketFalseStartTests to use ALPN.
* Add SSLClientSocketTest test cases for ALPN.
* Implement ALPN in tlslite.
* Plumb ALPN through SpawnedTestServer.
* Configure server ALPN for URLRequest tests so that
  connection does not fail.

Note that the ALPN implementation introduced by this CL does not conform to the
RFC: if there is no overlap between client and server supported protocols, ALPN
is ignored, whereas the specification prescribes an Alert to be sent.  This by
the way matches BoringSSL's implementation.  Also, it is simpler for tests: most
net_unittests against tlslite do not worry about the actual protocol negotiated,
and this way there is no need to configure the server ALPN list.

BUG=547867

Review-Url: https://codereview.chromium.org/2205433002
Cr-Original-Commit-Position: refs/heads/master@{#410127}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: b784c2f5e0e4041f2ccb4949c3a8b4c45a30b16c
6 files changed