Redesign, and vector type converting arithmetic

Redesigned the file hierarchy slightly, and added vector3/4 type safe
type converting arithmetic operators for other vectors and scalars