Add and use Intersect::Le method

Right now this doesn't really offer much benefit, but the slight
abstraction will help in the future.
Add occlusion-testing-with-texture-coordinates to Material

Specifically, the Material::OCCLUSION_REQUIRES_TEX_COORDS flag, the
Material::occlusion_requires_tex_coords method, and variants of
Material::occludes and Material::transmittance that take
texture-coordinates as an argument.

None of this is actually used yet, but when it is, it will allow
materials to perturb texture-coordinates.
Pass texture-coordinates as an argument to Material::Le

Previously, any definition of Material::Le that needed
texture-coordinates simply got them from the ISEC argument, but we
will remove Intersect::tex_coords in the future.
Set OCCLUSION_REQUIRES_TEX_COORDS flag in Stencil

There's no effect yet, but it will be necessary in the future.
Pass texture-coordinates as an argument to Material::get_bsdf

Texture evaluation in materials still uses the ISEC argument, which
will be changed in a future commit.
Evaluate CookTorrance textures using TEX_COORDS argument
Evaluate Lambert textures using TEX_COORDS argument
Evaluate Mirror textures using TEX_COORDS argument
Evaluate Stencil textures using TEX_COORDS argument
Include "color/color.h" in common.swg

Due to the way SWIG rearranges code (it emits %extend code at the
point where the thing being extended was first defined), this is
necessary even though Colors are not actually used in this file.
Remove TexVal::eval variant taking an Intersect argument

All uses of TexVal::eval now directly pass in TexCoord arguments, so
this is no longer necessary.
Use texture-coordinate-arg variant of Material::occludes

+ Override the texture-coordinate-arg variant of the
Material::transmittance method when texture-coordinates are
desired (currently, only Stencil::transmittance).

+ Call that version of Material::transmittance whenever the
Material::occlusion_requires_tex_coords method returns true.
Remove Surface::IsecInfo::tex_coords method

It is no longer used.
Replace Instance::tex_coords field with "tex_coords_uv"

... which stores less info and is private.
Add TexVal constructor for Ref<const Tex<T>> values
Add XformTexUV<T> and XformTexPos<T> classes

These are the same as XformTex<T> except that they only change one of
UV or positional texture-coordinates, not both.
Add XformMaterial, XformMaterialUV, and XformMaterialPos classes