Implement compressed texture support

Actually compressing textures on-line will be deferred to a library such as
rust-image. Only supports the most important ETC2 formats, as these are widely
available (even on mobile), not patent-encumbered, in the core profile in
GL4.3+ and GLES 3.0, and have excellent quality.

Closes #332