Add TLS ALPN support

Add support for switching backends by TLS ALPN (Application Layer Protocol Negotiation) extension. This is based on #66, but avoids adding additional dependencies to the TLS module and only supports a single method of backend selection: SNI or ALPN. More complex configurations could be achieved by proxying back to sniproxy on over a local UNIX socket to another listener configured for the other protocol.

Linker dependencies for master branch:
![sniproxy-master](https://cloud.githubusercontent.com/assets/117703/3077770/576caa3a-e442-11e3-88c6-bb8e8bd89967.png)

And for ALPN branch:
![sniproxy-alpn](https://cloud.githubusercontent.com/assets/117703/3077771/5bee073e-e442-11e3-8bb5-b324c652e9dc.png)

@nmav I would appreciate your review of this pull request since it is based on your earlier work.