DMEM v1.0. Breaks compatibility with earlier versions.

The API was completely remade, as a major bug was noticed. Since the old implementation relied on realloc() for expanding the memory, the memory kept could potentially move around in the virtual memory, making it impossible to safely keep pointers into the memory managed. This defeated the very purpose of the module.

The current version relies on keeping tracks of linked lists of memory blocks allocated using aligne_alloc(), making it safe to keep pointers into the managed memory.