GUI engine

This branch, 'feature/GUI', has been rebased (squashed), in order
to ease merging branch 'feature/FontResource' onto it. For the
complete history of 'feature/GUI' up to the point in time before
rebasing, see branch 'feature/GUI-historic'.