* vector class: added ref and ref_idx (template) functions that create a vector with components referencing the components of another vector in an arbitrary order, components are specified via their names (char parameters, ref) or their indices (ref_idx); this should make it unnecessary to add a ton of arbitrary vector component accessor functions (.xy(), .wx(), ...) and is much more flexible in the process
 * for consistency: renamed swizzle to swizzled (it actually returns a copy), but also added an actual swizzle functions that swizzles the vector itself
 * added a static constexpr value to the vector class that contains the vectors dimensionality (1 - 4)