simdarray: simplify and correct SFINAE return type

The simdarray binary operators should only participate in overload
resolution iff one operand is simdarray and the other is a builtin
arithmetic or Vector<T>.

refs #613

Signed-off-by: Matthias Kretz <kretz@kde.org>
first I want forward decls from all impls

Signed-off-by: Matthias Kretz <kretz@kde.org>
define new macros VC_DEFAULT_IMPL_* to really mean the default impl namespace

The old macros meaning got inflated. I will have to clean it up later.

Signed-off-by: Matthias Kretz <kretz@kde.org>
move internal types from AVX namespace to avx/intrinsics.h

Signed-off-by: Matthias Kretz <kretz@kde.org>
move internal types to intrinsics.h

(for now) moved types internal to the impl to intrinsics.h (out of
types.h). Thus types.h only declares the public types of the impl
namespace.

Signed-off-by: Matthias Kretz <kretz@kde.org>
typeToString: more readable type names

Signed-off-by: Matthias Kretz <kretz@kde.org>
it really is a size_t, not ulong

Signed-off-by: Matthias Kretz <kretz@kde.org>