Add consistency to graphic application class

The graphic application class is more specialised than the application
class, and its implementation has been updated to make it more
internally consistent. The on* events have been moved from applications
to just graphic applications, where they apply solely to the canvas. A
graphic application will no longer attempt to resize dynamically, but
instead has its contents dumped invisibly to the screen to measure its
actual height before the new window is opened. Finally, prepend and
append now apply to two separate containers in the window body, with the
window body arranged vertically. The effect of the latter should be
similar to the former, but should also produce more consistency when
components are wrapping around the canvas. Now the canvas will always
stay in the middle of the screen (but now horizontally centered as
well), with appended and prepended elements stuck above and below
respectively. All containers align their contents with the center of the
flex axis, and have returned to stretching across the cross axis (as
this was changed mainly to accomodate the layout of a graphic
application).