Make {aligned_}load<T>(U*) and {aligned_}store<T>(U*) behave properly

Types of pointer are checked so no implicit casting occurs.
Fix aligned_reuse/reallocate so check for conforming alignment is done when it should
Fix for stack_buffer alignment
Added slide<N>(a,b) function

Perform a generalized vec_sld on values
Various fix on iterator shown by MSVC

 - Fix invalid iterator checks and computation in aligned iterators
 - Fix improper computation and complete test for realigned range
 - Fix shifted_iterator test to not use std::transform
 - MSVC std transform don't work with element aligned on the stack
   as it takes its iterator by value.