HBASE-11331 [blockcache] lazy block decompression

When hbase.block.data.cachecompressed=true, DATA (and ENCODED_DATA) blocks are
cached in the BlockCache in their on-disk format. This is different from the
default behavior, which decompresses and decrypts a block before caching.

Conflicts:
	hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/CacheConfig.java
	hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.java
	hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderV2.java
	hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/LruBlockCache.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestCacheConfig.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestCacheOnWrite.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestForceCacheImportantBlocks.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFileBlock.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFileBlockCompatibility.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFileEncryption.java
	hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/LruBlockCache.java