OpenGL/Shapes: explicit cast to GLsizeiptr

GLsizeiptr is "int*" on some platforms (e.g. sunxi-mali), and an
explicit cast is needed to support that.
EGL/TopCanvas: read effective screen size from EGL
Screen: use EGL on the Cubieboard

Finally, we have hardware accelerated rendering.
Screen/SDL: remove EGL support

SDL and EGL are mutually exclusive.
OpenGL/Features: don't define HAVE_EGL on Raspberry Pi

The Raspberry Pi uses hard-coded EGL, and our HAVE_EGL is for dynamic
EGL.
OpenGL/Features: rename HAVE_EGL to HAVE_DYNAMIC_EGL

This is not about EGL, but about detecting EGL dynamically at runtime.
Screen/EGL: add macro DRAW_MOUSE_CURSOR

Draw the mouse cursor on the Cubieboard, too.
EGL/TopCanvas: move mali_native_window to the class

The Mali driver expects the mali_native_window object to persist.
This solves an important problem (out of memory) that was due to
ridiculous screen dimensions.
ide/puppet: remove trace of SDL_image

Not used anymore.
Screen/{SDL,OpenGL}: remove SDL_ttf

Our custom FreeType text renderer is as good as SDL_ttf now.  There's
no point in keeping SDL_ttf around.
Screen/RasterCanvas: move code to PixelOperations.hpp
Screen/PixelOperations: move loops to {Unary,Binary}PerPixelOperations
FreeType/Font: add lock in GetCapitalHeight()
Screen/RasterCanvas: import types with "using" instead of "typedef"
SDL/Canvas: fix RasterCanvans bottom/right clipping

Clip the Canvas if its Window exceeds the screen dimensions.  This is
easy to do on the right and bottom, but left/top is not yet solved.
Screen/RasterCanvas: rename SetPixel() to WritePixel()
Screen/RasterCanvas: add method ReadPixel()
Screen/RasterCanvas: rename Increment() to Next()
Screen/PixelTraits: add methods ForHorizontal(), ForVertical()
Screen/PixelOperations: consistently use PixelTraits methods