Factor Layer out into its own .h in preparation for new mesh
Add #defines for some handy vector/matrix math fns.
Added function for doing surfrevs in 2D (i.e. making circles)

The generateSurfrev2D() function (presently in Crate.cpp, might be moved later) generates a 2-D cross-section of a "slice" of a spherical shell. NUM_SLICES can be changed to adjust the level of detail (since this is, of course, just an approximation of a circle).
(generateSurfrev3D(), currently a placeholder, will take the output of this and surfrev it into a 3-D shape.)

Also, I copied Box's init() and draw() functions into Layer, since we'll be adapting them to draw the new mesh.
Implemented surfrevs in 3D + added a Mesh class

Note that Mesh does not yet have init() or draw() functions; those will be implemented shortly.
Added code to triangulate endcaps

(important for surfrevs of < 360 degrees)
Surfrevs and meshes are working (mostly)

I couldn't get the "spherical shell piece" effect I really wanted (I need to rethink the geometry on that a bit), but we do have working spheres!
Right now, drawing is commented out for all objects except a test sphere at the origin.
Center the sphere at 0,0,0 within its model space

I'm currently doing this in a hackish sort of way, by applying a (-1,0,0) translation prior to the world matrix when drawing; given our time constraints, though, it'll be plenty fine for this version of the game.
Replace boss cube with sphere
Merge branch 'layer-mesh' into Collisions

Conflicts:
	Crate/Crate.cpp (resolved)