Massive Refactor
Added a proper "Coordinate" class to separate vertex use from vector
use. Added proper encapsulation to the classes.
Implemented average normals at vertices to implement "Gouraud" shading
properly.