FB/TopWindow: disable method SetCaption()

Don't waste memory on an empty method; inline it.
Event: store mouse location as RasterPoint
Event/Linux/Input: move rotation formula to class RotatePointer

This class is a generic and reusable class that can handle display
rotation.
Hardware/Display: implement rotation on the Kobo
FB/TopCanvas: use fb_fix_screeninfo::line_length

This is more reliable than deriving it from xres_virtual and
bits_per_pixel.
FB/TopCanvas: use line_length in CheckResize(), too
FB/TopCanvas: switch to 8 bits per pixel grayscale

Reduces the required frame buffer memory bandwidth by 50%.
Main: explicitly destroy the MainWindow

Ensure that OnDestroy() gets called.  This wasn't working because the
instance was already morphed into a ContainerWindow.
FB/TopCanvas: add Kobo method Wait()
FB/TopWindow: blink on shutdown

Ensure that the screen is really white, without ghosting.
Form: work around RasterCanvas negative x bug
Hardware/DisplayGlue: remove unused variable on Koob
Screen/Util: move code to IsCircleVisible()

IsCircleVisible() contains a simplified version of the code, without
temporary PixelRect objects.
Screen: remove unused function SetRect()
Event/Notify: enable the destructor on Kobo
Event/SDL: include cleanup
Event/{Console,Android}/Queue: add Push(Callback)

Similar API to the SDL EventQueue.
Event/SDL: make EventQueue a class

Be API-compatible with the other EventQueue implementations.
Event/SDL/Queue: add methods Pop(), Wait()

Move code from Loop.cpp.
Event/SDL: don't use SDL_WaitEvent()

Prepare for TimerQueue.