Removed ChangeLog again

Setting the Automake strictness to 'foreign' disables enforcement
of GNU project rules. Thanks to Paul Wise for the tip.
Removed Surface::write method

All it did was redirect to Font::write, so it's better to call that
method directly.
Made Font ownership explicit using unique_ptr
Added Launcher class

Currently the launched application is exec-ed from deep within the menu
code. This means a lot of destructors are never run and as a result
for example file descriptors from the menu remain open in the launched
process.

This is a first step to move the launch invocation from a deep call
stack to the top level.
Enable "Display Console" flag for all platforms

Applications with this flag will not have their stdout/stderr
redirected to a log file when logging is enabled. That is a useful
feature also on platforms where we don't micromanage the console.
Moved console bind+activate code into Launcher

This way, we can launch console applications from the Explorer.
Launch application after destructing menu

This allows all destructors to do their job before we pass control to
a new process.
Removed halfW/H caching in Surface

This is a very cheap computation, no need to cache it.
Implement the standard set of copy and move operations for Surface
Put Surface argument first in Dialog paint methods

This is the convention that most classes stick to. The likely reason
why Dialog didn't stick to the convention was to be able to provide
a default value for this argument, but that feature wasn't very useful
since every caller already had access to the default surface.
Don't pass around naked Surface pointers when drawing

Use references instead.
Let SurfaceCollection::add make a copy of an existing surface

This allows the SurfaceCollection to claim ownership of the surface,
while ownership was undefined before.