Various memory fix/features

- aligned_malloc/free/realloc now have an overload that take
an arbitrary function object to perform the basic task.
- aligned_reuse is now implementable without aligned_realloc.
- force inlining were removed where unecessary.
- added doc on the malloc override mecanism
fix includes of aligned_free/aligned_malloc/aligned_realloc. Also define NO_BUILTINS if a custom function is defined.
make it explicit which function we're calling in memory builtins contexts, mark potential problem in posix realloc
Fix allocator code factorization
_aligned_malloc instead of _aligned_alloc in reallocate
Missing include in aligned_reuse
fix bad reallocate unit test
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
add missing aligned_reuse optimization, doesn't need the memmove of aligned_realloc
add test before calling memmove, implementation doesn't test whether destination and source are the same.
Fix alignment misnaming
Fixed doc on custom alloc/dealloc behavior
Fix memmov error in aligned_realloc
Fix warning about unitialized field in header_block
Merge branch 'upgrade_memory'
Make the interface of memory allocation primitives more flexible, fix some bugs.