move make include in preprocessor/make.hpp to avoid some issues with cyclic includes
Remove useless include in butterfly
Fix all_reduce hierarchy matching
Refurbish reverse
Refurbished broadcast<N>
Refurbish repeat_lower/upper_half
Implement generic shuffler

shuffling now use an open extensible system to specify both
any kind of potential optimizable pattern and a way to perform
arbitrary permutation.

System use externally specialized template structure so adding
new pattern is easy. Specific architecture can also inherit
from some default permutation handler or pattern optimizer then
overload their own specific way of optimizing/permuting.

Default pattern for identity, zeroing and interleaving are provided
and are likely to be completed later on.
Amended tests over 2/4 cardinals shuffle
Adapt common shuffle to new system
Adapt Altivec shuffle to new system
Adapt SSE2/SSSE3 shuffle to new system
WIP AVX

Still patterns to add and possibly some permutations