Avoid implicit int<->float conversions in GLSL.

Not portable to GLSL ES.
Do matrix inversion only once per frame instead of for every vertex.

Was not portable to GLSL ES 1.0, as there is no inverse() function.
Port to OpenGL ES 2.0 + OES_vertex_array_object.

Most of the code is shared so I decided to keep the example.cpp for both
desktop GL and GLES. Compilation for OpenGL ES can be toggled using
TARGET_GLES CMake option. Additional notes:

 * There is no GL_FRAMEBUFFER_SRGB so the colors are a bit off compared
   to the original example.
 * I created separate files for the shaders to make things cleaner, but
   there aren't any additional changes except for different keywords for
   in/out and explicit precision specification.
Updating ES profile syntax and adding makefile for GLES
Updating submodule to flextGL master branch