Fix various memory related issues on MSVC

- Fix reuse to behave exactly as realloc in term of SFINAE
- Fix usage of vector and copy in iterator test due to alignment issues
- Fix aligned_load dispatching to be non-ambiguous in unspecified cases
- Make is_pointing_to use our custom overload of iterator_traits
- Make our custom overload of iterator_traits for restrict pointers usabel by MSVC