cmake: Use unique name for each test

If add_test CMake command is called with the same test name several
times, only the last test is run.

The bug has been introduced by 2861164b2b5dcc91422a22c89e2b2ddac296b8d5.
cmake: Fix running of the dispatcher tests

The commit 972f29270e1af118dd71eea54d86490d2ea2fa00 removed generation
of the HAS_* CMake variables. This commit fixes this.
cmake: Fix detection of AVX instruction set
test: Rename TEST_PUSH32_... to TEST_PUSH16X2_...
Improve documentation, several small fixes
test: Add test helpers that test both 16-byte and 32-byte vectors
Fix the definition of detail::traits<uint16x16>::half_vector_type
test: Add missing overloads of tst_ext_half() for int* and uint* vectors

Previously the return type of tst_ext_half() with an argument of type
int16x16 was basic_int16x8, which breaks tests if the function that is
tested has overloads accepting only either int16x8 or uint16x8.
test: No need to #define tc
shuffle: Fix the AVX implementation of float64x4 shuffling
shuffle: Improve the AVX2 implementation of int64x4 shuffling
shuffle: Fix the AVX and AVX2 implementations of broadcast()
shuffle: Fix the implementation of sse::detail::shuffle128()
test: Update comparison tests to test 32-byte vectors too
compare: Fix AVX implementation of comparison functions
compare: Prefer AVX-specific intrinsics

Prefer AVX-specific intrinsics even if the old intrinsics generate the
same instructions.
test: Update floating-point math tests to cover 32-byte vectors too
math_fp: Fix the implementation of abs() on AVX
test: Update integer math tests to cover 32-byte vectors too
test: Move tst_ext_half() to SIMDPP_ARCH_NAMESPACE