[SPARK-3453] [WIP] Refactor Netty module to use BlockTransferService interface

Also includes some partial support for uploading blocks. Will finish this and then remove the WIP tag.

Review guide:
- server/client protocol is defined in protocol.scala
- please look closely at ShuffleBlockFetcherIterator, in particular, parts related to reference counting and cleanup of buffers

Then, looks like that no one else is using blockManager.getLocalShuffleFromDisk, could be removed.