Update Shader
Many changes

Revamped entity. Now entities hold their own shaders, model matrices,
and vertex buffers. Draw function now takes a VAO. Entities can set the
color of their vertices. Removed center coordinates from entities.
Positioning will be handled by translation matrices. Constructors now
take shaders, model matrices, and colors. The default vertex.vert and
frag.frag shaders should be sufficient for most uses.

Entities now start off at (0,0) in the world and are translated and
rotated into position. For example, if you want to create a new triangle
at (400, 300), you would create a new triangle with a translation matrix
of (300,400) for its model matrix and draw it.

Removed fram class. Replaced with drawing 4 strategically placed
rectangles in main loop.

Changed vertex shader to accept color attribute and model view
projection matrices. Changed fragment shader to accept color attribute.

Changed Blob class to match up with other entity subclasses.

Added projection matrix to main loop. This lets us work directly in
window coordinates. For example, a rectangle with dimension 400 and 200
will fit in the window now.