Replace deprecated std::num traits

These traits are akin to the deprecated standard library traits (Zero, One,
Primitive) to keep everything running as before. However, for the long term a
better algebraic abstraction should be used/provided.
Type-cast a vector component-wise

This allows one to e.g. cast a vector of f64s to an equivalent vector of f32s.
More generally this is allowed for arbitrary NumCast types.
Merge pull request #142 from aepsil0n/vector_cast

Type-cast a vector component-wise