fix various problems with aligned allocation primitives. MSVC built-ins now store the alignment before the pointer, because for now we allow aligned_realloc to change the alignment. Stashed implementation now also stores the allocated size on top of the used size, which is however only needed for allocators. Also replaced the hardcoded 32 by the macro BOOST_SIMD_REALLOC_SHRINK_THRESHOLD