Screen/Color: portable color class, replacing WIN32 COLORREF

Import some code from XCSoar, including the "GDI" implementation (for
Windows) and the "Memory" implementation (for software rendering into
a memory buffer, e.g. for SDL on Linux).
Screen/LKColor: rebase on class Color
Screen/LKPen: simplify move operator

Implement using a simple swap.  This avoids (postpones) the Release()
call and makes the operator zero-cost.
Screen/LKPen: fix bug in move constructor

This was bugged, because it made the new LKPen instance depend on the
old one.  The old one could not be thrown away, violating the C++
standard.
Screen/LKPen: add static method MakeStock()
Screen/LKBrush: simplify move operator

Implement using a simple swap.  This avoids (postpones) the Release()
call and makes the operator zero-cost.
Screen/LKBrush: fix bug in move constructor

This was bugged, because it made the new LKBrush instance depend on
the old one.  The old one could not be thrown away, violating the C++
standard.
Screen/LKBrush: add static method MakeStock()
Screen/LKBitmap: simplify move operator

Implement using a simple swap.  This avoids (postpones) the Release()
call and makes the operator zero-cost.
Screen/LKBitmap: fix bug in move constructor
    
This was bugged, because it made the new LKBitmap instance depend on
the old one.  The old one could not be thrown away, violating the C++
standard.
Screen/LKFont: simplify move operator

Implement using a simple swap.  This avoids (postpones) the Release()
call and makes the operator zero-cost.
Screen/LKFont: fix bug in move constructor

This was bugged, because it made the new LKFont instance depend on the
old one.  The old one could not be thrown away, violating the C++
standard.
Merge pull request #9 from MaxKellermann/linux

A portable Color class and a few move constructor/operator improvements/fixes
Draw, ...: use "auto" for LKSurface::SelectObject() return value

Prepare for using a different return type, one that is lighter.
Screen/LKSurface: return raw WIN32 handles from SelectObject()

Eliminates the overhead for creating temporary LKFont/LKBrush/LKPen
instances.  The executable size shrinks by 34 kB.
Merge pull request #10 from MaxKellermann/linux

Reduce LKSurface::SelectObject() overhead
fix several "maybe unitialised" warning. (false positive)
replace TCHAR by char for profile file token, : avoid char to wchar convertion.
fix MainWindow SetFocus when App is Activate & other small improuvement.
- _hWnd is not set before OnCreate call.
- Add Sublass Window for Allow to create stock WNDCLASS