Screen/Canvas: portable rendering class

Ported from XCSoar.  Various backends for platforms other than GDI
exist already, and will be ported to LK8000 once this commit gets
merged.