Simple vector and scalar operations are supported like + - * / but
without any optimization whatsoever to keep it generic and simple for now.
A swizzle function to get a new vector out of a subset of the original
vector's attributes is also added.
A lengthsq and length function is also provided.