AVX simd_cast: SSE::(u)short_v, offset 1 -> AVX::double_v

Signed-off-by: Matthias Kretz <kretz@kde.org>
simd_cast: implement everything for the casts test

The casts test compiles and passes with clang 3.4 and GCC 4.8

* implemented N -> 1 conversions
* implemented ImplA -> ImplB conversions
* full simdarray -> Any::Vector conversions (using a very generic
  recursive implementation for reuse of the Vector-Vector conversions)

Signed-off-by: Matthias Kretz <kretz@kde.org>
IO: place ostream << operator in Vc namespace

up to now I had it in std because it wasn't clear what namespace the
Vector<T> would come from. Now that's still the case, but I was able to
fix it with a simple "using Vc::operator<<" in the relevant namespaces.
simd_cast: AVX to SSE Mask cast only for 256bit registers

The lo128/hi128 bit functions obviously only work for ymm registers.
Since AVX::(u)short_v uses xmm registers this function needs to be
removed from the overload resolution set.

Signed-off-by: Matthias Kretz <kretz@kde.org>
new Mask::generate function

New static member function for Mask that generates a mask from booleans
returned from a generator function that is called with the corresponding
offset in the mask.

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