Rename DOXYGEN_SHOULD_{SKIP,READ}_THIS macros to SIMDPP_DOXYGEN
shuffle: Add support for missing type combinations in  unzip_{lo,hi}
doc: Hide implementation details in the documentation

Currently the documentation exposes a lot of unnecessary information
about the implementation, especially how return types of functions are
resolved. We hide the actual function declarations from doxygen and show
simplified versions.

Unfortunately Doxygen does not support multiline @fn attribute, thus
function declarations have been hidden via a macro, which obfuscates the
code quite a bit.
bitwise: Remove unneeded overloads of detail::insn::i_bit_xor
shift: Use proper instructions when the shift is not immediate
shuffle: Constrain and rename detail::shuffle128

detail::shuffle1_128 is now identical to shuffle1 with 128-bit elements
load,store: Make mem_pack# and mem_unpack# less dependent on vector length
Use blend instead of bit_{and,andnot,or} in detail::insn::mem_pack
types: Add missing conversion operator to native type for mask vectors
transpose: Remove transpose8

The transpose8() functions are very unlikely to be ever used. They are
very slow and the performance would be better improved by reorganizing
data layout.

This is API-breaking change.
transpose: Move transpose functions back to core/

This is API-breaking change.
permute: Fix circular header dependencies
types: Add is_value_vector to match value (non-expression) vector types
transpose: Make transpose functions independent of vector width
load,store: Reduce duplication in packed load/store functions
transpose: Slightly simplify the implementation of 32x4 transpose
store: Simplify constant initializers in impl of store_{first,last}
store: Remove unnecessary casts in impl. of store_{first,last}
store: Prefer vpmaskmov{d,q} and vmaskmovp{d,s} for partial stores
test: Make more tests independent on vector width