Merge pull request #415 from csherratt/master

Update to latest rustc
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
(fix) Update README.md example path
Merge pull request #419 from axelmagn/patch-1

(fix) Update README.md example path
Add FBO support flag to capabilities and panic when necessary

Closes #317
Remove `Bytes` enum

Since the Device isn't behind a task anymore, these don't need to be owned
ever.

Closes #359
Implement base indexes

This removes `IndexCount`, as it will never be distinct from `VertexCount`,
and cleans up the `Slice` representation to factor out common fields with
names, because it was becoming unmanageable. Changes the `DrawCommand`
slightly to take a buffer handle when binding the index buffer, because the
size of the buffer is needed in the fallback for when base indexes are not
supported. This code path should be very rare.

First half of #355
Implement base instance

Closes #355
Make initial render states agree

Fixes #412
Make `Graphics` submit all calls instantly

There is no reason to wait, we are on the same thread as the device.

Closes #299
Clean up version/extension querying a bit
Update renamed method
Update macro for collections changes
Fix partialord implementation