[SPARK-2938] Support SASL authentication in NettyBlockTransferService

Also lays the groundwork for supporting it inside the external shuffle service.
Gotcha, yeah, we need to figure out a scheme for `@DeveloperAPI` in this module....