Shared memory allocation bug fix

* On memory extension, the pointer to the shared memory area
changes because mmap returns a different pointer. The data stored
in mm->area had to be copied to the new area;
* Also when the memory has resized the new chunk was added to the
list of chunks using the old pointer to mm->area.

Signed-off-by: Claudiu Ghioc <claudiu.ghioc@gmail.com>