[SPARK-2938] Support SASL authentication in NettyBlockTransferService

Also lays the groundwork for supporting it inside the external shuffle service.
Documentation for all network-related things is forthcoming soon, we don't have a place for it within this patch.