Surface fillTriangles methods that render slices.

Courtesy of ruslansennov, with various revampings by yours truly.

These are a little complicated. You can pass in a slice of a vertices array and
you can pass in a slice of an indices array. However, the indices array is
supposed to provide indices into the xys array, so the question is: do they
provide indices into the slice, or indices into the whole array?

Because I can imagine use cases for either choice, this is left up to the
caller as well, so you have to specify an indicesBase which would be zero if
your indices are relative to the slice, or xysOffset/2 if your indices are
based on the unsliced array.

Closes #31.