[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.
Yep, for consolidation. But think again for sortShuffleManager, since all data currently is stored in reduiceId 0 file, then it will lead to some problem. I am wondering to change the physical filename mapping there too to solve this problem. since we won't want disk manager to know anything about shuffle block name mapping.