Stability, build improvements and sanitizers.

* Use memmove(3) instead of memcpy(3) for overlapping ranges, It should improve stability.
* Add option to build with sanitizers and hardening