RoughAltitude: use iround to convert fixed to short

Casting a float to int truncates the value and doesn't round it.
This may lead the contest solvers to miss a valid altitude difference
of exact 1000 meters. Using iround to convert the value to a short ensures
that a near-natural float gets converted into the nearest short.
Event/Linux/Input: use signed integer

This is what we get from the kernel, and this is what MergeMouse
expects.
Event/Linux/Input: use class Point2D
Event/Linux/Input: scale touchscreen coordinates to screen size
OpenGL/Canvas: pass RasterPoint[] to glVertexPointer()

Replace GLshort arrays with RasterPoint[] arrays, which is more
type-safe.
OpenGL/Canvas: wrap glVertexPointer() calls in class ScopeVertexPointer

Prepare for GLES 2.0 which requires glDisableVertexAttribArray() in
the destructor.
OpenGL/Canvas: use GL_SHORT for VBO

Fixes regression by previous commit.
OpenGL/Program: add attribute methods
OpenGL/Shaders: library managing global shaders

More shaders to come.
OpenGL/Canvas: GLES2 implementation of ScopeVertexPointer
OpenGL/Canvas: disable glTexEnvi() and GL_LOGIC_OP on GLES 2.0

Replaced with TODO comments, to be implemented later.
OpenGL: use the "glm" library for GLES2

Replaces the GLES1 built-in matrix operations (incomplete, just
infrastructure).
OpenGL/Canvas: move code to VertexPointer.hpp
OpenGL/Texture: use class ScopeVertexPointer
OpenGL/Texture: GLES 2.0 implementation

New shader for textures.  Untested, but compiles.
OpenGL/SubCanvas: GLES2 projection using the "glm" library
{Glass,Gradient}Renderer: use class ScopeVertexPointer
OpenGL/CanvasRotateShift: GLES2 projection using the "glm" library
TerrainRenderer: disable glTexEnvi() call on GLES 2.0
Form/TabDisplay: remove bitmap rendering code on GLES 2.0

To be implemented.