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
but i have more than one iterator for record-store.