Create feature/dbg-tools

- Add stack trace (include/stacktrace.h)

- Add global MemoryManager (glbMemMgr) which handles (almost) all
  memory allocations and de-allocations. Memory-pool size
  (GLOBAL_MEM_BUFF) defined in pvfmm_common.hpp

- In MemoryManager, detect array out-of-bounds writes by checking
  unallocated memory in memory-pool for changes.

- include/fmm_pts.txx: Fix array out-of-bounds write error in
  V_ListSetup(...)

- include/fmm_pts.txx: Reorder loops in VListHadamard(...)

- src/profile.cpp: cleanup.
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
Merge branch 'feature/dbg-tools' into develop