Merge pull request #14 from axel22/master

Improving `Program` exception information.
Add keyboard controls.
Change texture pattern.
Changing source folder structure - preparing for refactoring.
Refactoring `AttributeBuffer` for the new separate API approach.
Merge pull request #15 from inmost-light/texture-settings

Texture settings
Start an example of basic lighting.

Draw a colored cube using indexed drawing.
WIP on refactoring the APIs.

Moving base functionality into the `macrogl` source directory.
Instead of having WebGL and OpenGL commons in `macrogles` source
directory, we now have `macrogl` source directory.
Additional functionality is moved into `macroglex` -- the extended
API layer.
I think this is more natural.

Then, compute shader functionality (OpenGL 4.3) is moved into
`macroglex` source folder. You can see that `AttributeBuffer`'s
`computing` calls now use `Macroglex` API -- the extended API layer.

Refactoring `MeshBuffer`s to the new API model.
Add a camera.
Refactoring `FrameBuffer` and `Program`.
Add a directional light.
Fix `Program` and `FrameBuffer` imports.
Matrix refactored.
`RenderBuffer` refactored.
Refactored `Texture`.
Refactored the remainder of the `macrogl` package.
Merge pull request #21 from inmost-light/basic-lighting

Basic lighting
Remove duplicate matrix multiplication code.

The first call to `Matrix.multiply` forces the initialization of the
various default matrices. Their initialization code may call a
deprecated function, which in turn may cause a runtime exception. This
was the reason for the duplicate code in the first place. Making them
`lazy` seems to solve this problem.
Merge pull request #24 from inmost-light/matrix-mul-refactor

Remove duplicate matrix multiplication code.
Merge branch 'master' of github.com:storm-enroute/macrogl