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.
Collisions in one axis
Implemented surfrevs in 3D + added a Mesh class

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

(important for surfrevs of < 360 degrees)
Laser destroys walls

also made it so you can't simply hold space to spam bullet
WALL REGENERATION!
Fixed top and bottom laser issue
Fixed laser -- swings around and starts in beginning
Splashscreen Class

Added splash screen class. May need to adjust rotation based on camera
for anything other than initial splash screen.
DIAGONAL COLLISION
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.
Added background

did stuff. had fun doin' it.
initial attempt at player health bar
Replace boss cube with sphere
Merge branch 'layer-mesh' into Collisions

Conflicts:
	Crate/Crate.cpp (resolved)
Merge branch 'new-bullet' into Collisions

Conflicts:
	Crate/Crate.cpp (resolved)
	Crate/Crate.vcxproj.filters (resolved)