Upgraded the memory management to be thread-safe

AllocMap nolonger returns pointers to it's internal data structure with begin/end, retrieving information about the allocated data is now handled by AllocMap::getAllocData()
The new and delete operators are now guarded by lock_guards with a shared mutex.