Do not miscalculate format length for bad print formats.

  It would crash with a format like "%.05", that is, missing the type
specifier (i.e. should have been "%.5f").
Do not crash if releasing SDL resources after SDL was finished.

  SDL does release its resources, but will crash if attempting to release
resources after it was shut down. This change adds a global flag to keep
track of pointers just not call sdl release routines after sdl was shut
down.
Correct texture size check for GL_LUMINANCE_ALPHA
Add extra pitch information to sdl.surface_t.
Remove ARB suffix from wrapper names and constants.

Also remove duplicates of with and without the suffix.
Add basic/initial OpenGL vertex arrays support.
Add base/initial vbo wrappers support.
Make convert_surface with PixelformatRgb actually generate a packed buffer.

  This was intended all along, but SDL_PIXELFORMAT_RGB888 actually
is 4 bytes aligned per pixel.
Add support defining functions that return vectors.

  The more clear syntax would be to implement typedef. This change
allows code like this:

    int32_t fn(...)[3] {
	int32_t v = new int32_t[3];
	...
	return v;
    }

this is invalid in C, but for the language, must be supported because
there are no explicit pointers.
Correct misplaced type assertion when operating on float32_t and a constant.

  Floating point constants are stored as doubles.
Allow different vector types in opengl wrappers.

  This follow the pattern added for vertex array and vbo support, and
was being forbidden so far to simplify implementation and use the proper
or widest type for an operation.

  In this commit only missing change is support for textures in a format
other than unsigned bytes.
Add a large set of OpenGL examples.

  These are most legacy tutorials from http://nehe.gamedev.net/
and were used to validate/check the current OpenGL wrappers.
  The missing examples may be implemented later, e.g. have some
kind of builtin bitmap fonts, and some may be emulated, e.g.
the example rendering a video to a texture could be done just
showing random data (at least until some way to read a video
stream is done).

  The examples must be run from the toplevel directory, for
example, to run all of them:

for f in `ls nehe/`; do echo $f; ./owl nehe/$f/$f; done

  Obviously it is also required to build the code with SDL2
support. It has been tested only on Fedora, and this should
pull all SDL2 dependencies:

$ sudo yum install SDL2-devel SDL2_image-devel SDL2_mixer-devel SDL2_ttf-devel