Fix GHC 7.6.3 build.
Fix warnings.
Bump version 0.3.0.1 --> 0.4.0.0
Add some Enum instances.
Arrange modules in alphabetical order in .cabal file.
Toy programs are not test suites.

I made them into executables that are only built when 'build-toys' flag is set.
Abstract ContextID.

It used to be a type synonym. Now it's actual representation is hidden.
Add more Typeable and Enum instances.

I had to make VAO an Ord for this.
Use Uniques from Data.Unique rather than IORefs in Ords.

Ord instances are provided for many resources that work by creating unique
values and using them as the comparing point. I had been using top-level IORefs
for this but let's move to Unique instead (which is internally implemented the
same way).
Add gl-info