FlarmCalculations: fix iterator after erase()
IOThread: fix iterator after erase()
Event/EGL/Queue: move code to class LinuxMouse
Event/Linux/Mouse: use FileDescriptor::Read()
IOThread: move code to new class IOLoop
Event/EGL/Queue: move code to class TTYKeyboard
Event/EGL/Queue: use class IOLoop

Allows plugging more I/O events.
Makefile: preserve the Raspberry Pi -march=armv6j option with clang

clang generates ARMv7 code when even "-target armv6-..." was
specified.
Screen/Window: allow calling Invalidate() only from main thread

Invalidate() was never truly thread-safe.  Only one caller actually
used it from another thread: the DrawThread via DoubleBufferWindow.
We're now using SendUser() / OnUser() instead.
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