ProtocolFinder that will first try to execute an handshake.
If the handshake is succesfull, the https protocol will be assumed. If the
handshake fail, the http protocol will be assumed.
This object shoudn't be called by several threads simultaneously.