Implement buffer mapping

Does a big part of #236
gl-rs unsafety fallout

Closes #418
Implement cube mapping.

Closes #307
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
Address reviews
Update glutin example.
Merge pull request #417 from cmr/master

Finish up SM3