[SPARK-2938] Support SASL authentication in NettyBlockTransferService

Also lays the groundwork for supporting it inside the external shuffle service.
Did you mean Exception vs RuntimeException? In that case maybe write "catch Exception instead of RuntimException ..."