Fixes #2946: Read operations of map should respect expired keys

Fixes #2946:

Includes:
- From now on, operations like keySet, values, entrySet are respecting expired keys.
- Removed getReadonlyRecordMap method from RecordStore. 
- Introduced ReadOnlyRecordIterator. And getReadonlyRecordMap calls replaced with iterator calls.
- Some cleanups & renamings
done this way because i don't want it to work eventually, it should immediately work