Reduce potential dataman memory fragmentation

The data manager dynamically allocates relatively small work item blocks
on an as needed basis. It never frees these, instead maintaining then in
a list of available block for reuse when needed. Even if these blocks
are small, the are required at non-deterministic times and can end up
scattered in memory thus causing memory fragmentation. In order to
mitigate this problems work item blocks are allocated in groups of 8 in
contiguous memory to reduce the number of scattered memory allocations.
In reality, based on current usage, rarely will more than one group of 8
be allocated.
Free data manager work items the same way they were allocated

Since data manager work items are allocated in groups of 8, they need to
be freed the same way should the manager need to stop.
Merge pull request #938 from jean-m-cyr/master

Reduce potential dataman memory fragmentation