While looking through the ALPN logic, I notice that we still fallback to NPN if ALPN is not offered. Should we get rid of that support? It seems that the world has moved on.
I also noticed that our internal data structures are all named around npn. May want to due a name update to avoid confusion in future maintenance.