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
If you let RecordStore implement Iterable you can do:

```
     for(Record record: recordStore){...}
```