Reviewed, updated and apparently broke SHM

TODO
* SHM Correctness tests and fix bug shown in TimePeriod benchmark
* Bucket DU and load/save inner maps
* SHM must be not slower than SM for AddLast.
* SHM add locks on buckets, not on the whole map. Use bucket version as lock object and use it in iterator.
* TimePeriod correctness tests

LOW
* TimePeriod direct parsing from string
* Remove subkey and only use sortable hash for grouping. Do not bother about compression - one could buy memory, not time.

* Locking scheme was a stupid disaster, the fix gives several times boost for iterator.
* SM is now better than SCG.SL for inserts, comparable on reads and has more functionality.
* SHM is also faster for inserts than SCG.SL, reads are ~same, enumeration is 3x slower. I bet it is fast enough for all practical purposes.

TODO
* Try to add subkeys back - in the fixes above the hashing impact was muted. Bip ops on ints should be negligible, while 40% memory saving is quite good!
* Start reworking old Series, Spreads and Windows
* Bucket DU and load/save inner maps

MEDIUM
* TimePeriod correctness tests
* SHM inner maps to syncronized and outer map lock only when outer is being modified

LOW
* TimePeriod direct parsing from string

Test Name:	SortedMap_run
Test Outcome:	Passed
Result StandardOutput:	SortedMap Add, #1000000, ops: 12048192, mem/item: 16
SortedMap Add, #1000000, ops: 12820512, mem/item: 16
SortedMap Add, #1000000, ops: 13157894, mem/item: 16
SortedMap Add, #1000000, ops: 14285714, mem/item: 16
SortedMap Add, #1000000, ops: 13888888, mem/item: 16
SortedMap Read, #1000000, ops: 5405405, mem/item: 0
SortedMap Read, #1000000, ops: 5319148, mem/item: 0
SortedMap Read, #1000000, ops: 5154639, mem/item: 0
SortedMap Read, #1000000, ops: 5154639, mem/item: 0
SortedMap Read, #1000000, ops: 5291005, mem/item: 0
SortedMap Iterate, #1000000, ops: 29411764, mem/item: 0
SortedMap Iterate, #1000000, ops: 43478260, mem/item: 0
SortedMap Iterate, #1000000, ops: 37037037, mem/item: 0
SortedMap Iterate, #1000000, ops: 35714285, mem/item: 0
SortedMap Iterate, #1000000, ops: 43478260, mem/item: 0
SortedMap Add Reverse, #100000, ops: 16268, mem/item: 20
SortedMap Read Reverse, #100000, ops: 5555555, mem/item: -20
----------------

Test Name:	SHM_run
Test Outcome:	Passed
Result StandardOutput:
SHM<1024> Add, #1000000, ops: 8000000, mem/item: 16
SHM Read, #1000000, ops: 4878048, mem/item: 0
SHM Iterate, #1000000, ops: 12500000, mem/item: 0
SHM<1024> Add Reverse, #100000, ops: 1449275, mem/item: 16
SHM Read Reverse, #100000, ops: 5000000, mem/item: -16
SHM Time Period Add, #1000000, ops: 3937007, mem/item: 18
SHM Time Period Read, #1000000, ops: 2958579, mem/item: 0
SHM Time Period Iterate, #1000000, ops: 12820512, mem/item: -18
SHM Time Period Add, #1000000, ops: 4115226, mem/item: 18
SHM Time Period Read, #1000000, ops: 3058103, mem/item: 0
SHM Time Period Iterate, #1000000, ops: 18867924, mem/item: -18
SHM Time Period Add, #1000000, ops: 4132231, mem/item: 18
SHM Time Period Read, #1000000, ops: 3154574, mem/item: 0
SHM Time Period Iterate, #1000000, ops: 17543859, mem/item: -18
SHM Time Period Add, #1000000, ops: 4291845, mem/item: 18
SHM Time Period Read, #1000000, ops: 3115264, mem/item: 0
SHM Time Period Iterate, #1000000, ops: 18518518, mem/item: -18
SHM Time Period Add, #1000000, ops: 4132231, mem/item: 18
SHM Time Period Read, #1000000, ops: 3095975, mem/item: 0
SHM Time Period Iterate, #1000000, ops: 19607843, mem/item: -18
----------------