Add Vec2 and Vec3 structs.

It's a rite of passage for every graphics engine, it really is.
Add UiViewModel for UI components.
Implement UI positioning.