Added OutsideOfTextureSTMode to CGTextureMapping

• Added new OutsideOfTextureSTMode enum to CGTextureMapping.h.
	» Specifies the within-quad texture coordinates to use (when the points' UVs are not 0-1,0-1).  Comparable to OpenGL’s `GL_TEXTURE_WRAP_S`/`_T`.
	» Same values as OutsideOfQuadUVMode but without a skip mode.
	• cgTextureMappingBlit() now takes an additional arg: `OutsideOfTextureSTMode stMode`.
• `surfaceSTToTexelUV_bilinearQuad()` revised to take an `OutsideOfQuadUVMode` template arg, and to call `normalizeTexelCoord<>()` on the U- and V-equivalent ratios, returning GLKVector2Invalid if non-normalizable.
	» Now again calculates the re-balanced aft/fore UV ratio (`uvOfNearestPointOnAft` and `uvOfNearestPointOnFore` lerped via `ratioAlongNearestAftToNearestFore`).  Sadly only uses it to determine if it should early out.
	• `normalizeTexelCoord<OutsideOfQuadUVMode>()` is a new variant of `normalizeTexelXY<OutsideOfQuadUVMode>()` that only takes one float coord, and assumes a normal range of 0.0-1.0.
• genDestImagePixelBytes() revised to early-out if the `texelST` is invalid, and to run it through normalizeTexelST<>() before multiplying the 0-1 ST coords up to 0-width/-height XY coords.
	• `normalizeTexelST<OutsideOfTextureSTMode>()` (formerly `normalizeTexelXY<OutsideOfQuadUVMode>()`) now assumes 0-1 float ST coords (instead of 0-width/-height int XY coords), takes them as a 2-element array, operates on OutsideOfTextureSTMode instead of OutsideOfQuadUVMode, and no longer returns a bool (since there’s no skip state for OutsideOfTextureSTMode).
• New `clamp_f()`, `clamp01_f()`, `within_f()`, `within01_f()`, and `modulo_f()` helper functions.
	• `clampi()`, `withini()`, and `modulo()` renamed to `clamp_i()`, `within_i()`, `modulo_i()`.
	• Using new `modulo_f()` function for `normalizeTexelCoord<>()` and `normalizeTexelST<>()` since `fmodf()` alone will produce negative values.
• New `GLKVector2Invalid` and `GLKVector2IsInvalid()` math extensions.
	» The former is just a GKLVector2 with both coords set to `NAN`, and the latter checks if either coord is `isnan()`.