Fixes #53. Use memmove over memcpy when doing overlapping memcpy's as memcpy is not safe and behavior is undefined when it uses a downward direction memcpy with optimization enabled which ends up corrupting the queue group shared segment information