Fixes a bug from 228933df #4237 (closed) where redirect_realloc() was not updated to read the new malloc header, resulting in a memcpy that reads beyond the end of the original allocation, which can crash if it's at the end of a heap block with a subsequent guard page.
Adds at least some sanity checks of realloc to the alignment test. I tried to construct a regression test to reproduce the crash in the bug, but it is not possible in a straightforward way just using the public interface as it requires knowing what is beyond an allocation or how two allocations are arranged and what headers or other bytes are in between.
Fixes #4237 (closed)