pw_kvs: Make address space conversion virtual

This change makes the partition to flash address conversion a virtual
function as partitions may have to account for additional metadata that
they store in flash sectors.

Change-Id: I173f8e86e27645e86aa922a14505a1517fd37d85
diff --git a/pw_kvs/public/pw_kvs/flash_memory.h b/pw_kvs/public/pw_kvs/flash_memory.h
index ebd3dcd..b5b9716 100644
--- a/pw_kvs/public/pw_kvs/flash_memory.h
+++ b/pw_kvs/public/pw_kvs/flash_memory.h
@@ -217,7 +217,10 @@
     return flash_.FlashAddressToMcuAddress(PartitionToFlashAddress(address));
-  FlashMemory::Address PartitionToFlashAddress(Address address) const {
+  // Converts an address from the partition address space to the flash address
+  // space. If the partition reserves additional space in the sector, the flash
+  // address space may not be contiguous, and this conversion accounts for that.
+  virtual FlashMemory::Address PartitionToFlashAddress(Address address) const {
     return flash_.start_address() +
            (start_sector_index_ - flash_.start_sector()) * sector_size_bytes() +