This attempts to bring some sanity to how warn() and error() are defined so that they can be used by misc.c, kaslr.c, and string.c. After that, we add a warn() to memcpy and call memmove on detected overlaps.
-Kees v5: - split out warn/error into error.c/error.h v4: - use __memcpy not memcpy since we've already done the check. v3: - call memmove in addition to doing the warning v2: - warn about overlapping region