fixed bug with triangle strips that have holes

- fixed bug from last commit
- I wasn't covering all vertices
- Then I had triangles that covered all vertices, but still didn't fill
out entire polygon
- After that, I needed to implement algorithm to remove 0th vertex,
after each addition to the triangle list
- the modulo-indices calculations are needed, especially for the later
versions that rasterize concave polygons
added bounding box constrained fragment generation

- also fixed a bug, where min and max aren't computed correctly because
min and max can't deal with more than two parameters
implemented color interpolation across a triangle

- Implemented color interpretation based on barycentric coordinates
- I'm probably doing redundant work in my rasterization routine, because
I compute edge values twice for fragment, but the initial edge values
are not normalized
- I subclassed STPoint3, so I could encapsulate color with a vertex.
which meant I needed to change the internal representation of Triangle
as well
- I updated fragment() to accept a color parameter