Add UniformHash, Texture, and Pass.

Quick note: although these are under the 'rendition' path, they are not
in a Rendition module. The reason for this is that I'd rather limit the
use of modules to cases where it would be ambiguous or mess with the
global namespace (so to speak). So, they're under rendition for
organization but do not need to be in a new module because there's
nothing to clash with them.

UniformHash ===========================================================

This is just a hash subclass with some additional methods for storing
uniform values and binding them. It currently requires use of the
opengl-core/aux Program class because it does not cache uniform
locations or anything. It's just storage at the moment.

Pass ==================================================================

This is basically just a small snapshot of some GL state - but not all
GL state. Upon binding, it tries to do a diff against the last pass
bound to avoid changing too many things. Texture state is still iffy,
however. If pass state is lost, you can reset it to its defaults by
calling Pass::reset_pass_state!

You can either keep your own pass state variable and provide it for
each pass bind, or it will use its default class variable. If you end
up subclassing Pass, you will probably want to adjust override the
methods that take a pass to compare against so that they default to a
pass state of the same type, otherwise you might end up unnecessarily
changing state.

Texture ===============================================================

Just a simple subclass of opengl-core/aux's Texture that allows you set
filter and wrapping parameters on texture bind.