simdarray: implement apply function

The simdarray::apply functions simply forward to the Vc::Vector::apply
functions.

refs #613

Signed-off-by: Matthias Kretz <kretz@kde.org>
simdarray: reconsidered int promotion

don't promote shorts to int anymore:
In principle we want the exact same rules for simd_array<T> ⨉ simd_array<U> as the standard
defines for T ⨉ U. BUT: short ⨉ short returns int (because all integral types smaller than
int are promoted to int before any operation). This would imply that SIMD types with integral
types smaller than int are more or less useless - and you could use simd_array<int> from the
start. Therefore we special-case those operations where the scalar type of both operands is
integral and smaller than int.

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

use 10000 random values to test (a * a + 1)

Signed-off-by: Matthias Kretz <kretz@kde.org>
allMasks is in the UnitTest namespace now

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