Added Vector2u/Vector3u support everywhere; refactored Terrain

Terrain uses its own kind of vertex now, and lots of instances of
Vector2i/Vector3i were replaced with Vector2u/Vector3u when applicable
-- I started with changing Array2D/Array3D and the changes propagated to
the rest of the project simply by fixing compile errors.