EG: extracted BlkIndex to simplify testing.
EG: new index working; very preliminary commit
EG: Vet bisect met cutoff limits cache and gives superb speed: 7000 reads/s
TS: work in progress:

- SEEK_CUR & SEEK_END i.s.o. plain numbers or home-grown constants
- Left some questions in the code and tests
- _MemIndex refactored (1st attempt; tests say OK - coverage?)
    * key's and blk-indexes are sorted (tested that).
- assert on Array('L').itemsize more meaningful
- Left some pseudo-code for another day to think about:
  nextLineMustBeSentinel flag set from target_key argument in _readNext.
  (Needs a failing test first!).
- Temporary bail-out of long-running tests until refactored into a
  separate performancetest script.
- KeyIndexTest.testMaxSize fails on "maxSize" argument missing.
  Consider an upper limit instead (if size above that: logging, screaming,
  notify monitoring tools or whatnot).
EG: added test for _readNext(target_key)
EG: _readNext now does not skip records after a truncated one
EG: changed Iter into generator
EG: made iter work with _readNet(target_key)
EG: comments and small change
EG renamed _keyData to scan()
EG: moved scan to blkIndex
EG: refactored add
EG: refactored find
EG: renamed find to find_blk_range
EG: WIP major simplicication
EG: new record: 11.800 record/s read
EG: refactored test and added batch test
EG/HM: fixed all tests
EG/HM: all systems go
EG/HM: all systems really go