Backport ALPN and Mutual Auth SSL

Motivation:
Improvements were made on the main line to support ALPN and mutual authentication for TLS.  These should be backported.

Modifications:
- Backport commits f8af84d5993456426a63ad0146479147b1a4a5e5 and e74c8edba3fcbfd2e895ed6aac440efeb3aa637f from the master branch

Result:
Support for ALPN and mutual authentication.