Fix IMemoryBlock::validRange(),read(),update()

* Fix validRange() so that an invocation with start=0, length=mSize passes.
* Have IMemoryBlock to compose the heap instead of to inherit it.
* Implement read() and update() and have them call readRange() and
  updateRange() implicitly.
* Rename
   IMemoryDecorator -> MemoryDecorator
   IMemoryCacheable -> MemoryCacheable
   IMemoryBlock -> MemoryBlockImpl

Test: libhidlcache_test on pixel phone.
Bug: 111795979
Change-Id: Ida693f79b48ce370432050c7c302d514012b5ece
1 file changed