Add On : Replace constructor with loader

A simple loader that substitutes different DMap constructors. Allows DMap customization : 
* enable offset preloading
* enable values preloading
* set maximum block to be cached at a time.
Load array of keys from FirstKey->BlockStart map for binary search. Instead of loading this for every call, is it fine to load it once (after processing block related information)?