[SPARK-2288] Hide ShuffleBlockManager behind ShuffleManager

By Hiding the shuffleblockmanager behind Shufflemanager, we decouple the shuffle data's block mapping management work from Diskblockmananger. This give a more clear interface and more easy for other shuffle manager to implement their own block management logic. the jira ticket have more details.
but fyi .. as part of https://issues.apache.org/jira/browse/SPARK-3019 I'm cleaning all these stuff up and there won't be any Netty specific code anymore, so it's probably ok to not clean this up here (but don't worry about it since you have done it already)