Cleanup MemoryManager, merge mem_utils and mem_mgr

- Cleanup MemoryManager class, create MemHead struct to store header
  data instead of the older way of using offsets.

- Rename aligned_malloc, aligned_free to aligned_new, aligned_delete.
  This clarifies that these are alternatives to new and delete.

- aligned_new and aligned_delete take pointer to MemoryManager object
  as optional arguments. Default is the glbMemMgr object. If NULL is
  used, malloc and free are used instead.

- Remove SetSigHandler() from being set by default at startup. It can
  be set at any point in the code by calling the function.

- TODO is build fast stack allocation in MemoryManager