Refactor MemorySim_GetFlashReadCounts()

Previously I had the MemorySim_GetFlashReadCounts() API which returned
a structure that represented the read counts for the whole region.
This commit replaces it with a MemorySim_GetFlashReadCount() API which
just returns a single uint32_t, the count of read access to the
specific half-word address.
MemorySim_GetFlashReadCount() check for region overflow

It is possible that the address passed into
MemorySim_GetFlashReadCount() occurs at the last byte of the region
so that a halfword wouldn't fit.  If this happens, the API should
throw.