Remove simplified declarations for Doxygen

Doxygen won't be used to generate official documentation in the future.
Pass all vectors by const reference
cmake: Add AVX512F support to simdpp_multiarch
test: Enable dispatcher tests for AVX512F
Fix invocations of _mm512_shuffle_epi32: GCC now requires _MM_PERM_ENUM
bitwise: Remove support for floating-point scalar arguments
Convert scalar args to vector element type (except in bitwise functions)

The first implementation always transferred the bit pattern of the
source scalar argument to all elements of the destination vector. This
was to make cases such as bit_and(v, 0x80000000) work for all vector
types. However, the conversion rules were very unintuitive in the rest
of the cases.

This commit makes the scalar conversions to convert the source value to
the element type of the target vector in the usual C/C++ rules, except
for bitwise functions, where we want to preserve existing behavior.
bitwise: Do not immediately evaluate the argument expressions
Fix redundant type query in SIMDPP_SCALAR_ARG_IMPL_INT_UNSIGNED
Pass scalar arguments by const reference
Get detail::expr_eval a chance to know the type of the result vector

This leads to significant simplification of code in several cases.
bitwise: Fix return type of bit_xor scalar variants
Collect uint expression optimization implementation to single location
Add scalar arguments to the expression tree where possible
Store subexpressions as const references in expression objects

Some compilers, such as GCC, can't optimize out all possible cases of
copy construction on some platforms, such as ARM/NEON. This leads to
abysmal performance of expression templates. Storing sub-expressions in
expression templates works around this issue. The caveats are the
following:

* We can never construct new values when building an expression
template. Thus all casts must be done as cast from one reference type to
another (in our case this is not UB, at least in C++11, as the types in
question are standard layout types).

* The user should never store the expression template using auto. Only
conversions to concrete vector type are allowed.
Remove unused code
test: Don't use unions in test data