Screen/Canvas: portable rendering class

Ported from XCSoar.  Shall replace the LKSurface class.