Platform: disable copy/move of Application classes.

They are something like singletons (or they expect that behavior
internally), moreover some code might hold pointer to them, thus
movement is not desired.
Platform: publicly document copy/move inability of Event classes.

We need to create one instance, send it to subclasses and then check its
state, thus we expect that the user always operatres with the original
instance.
Platform: make virtual functions private, rendering protected, other public.

 * The default (empty) implementation of virtuals shouldn't be called,
   thus this effectively protects the user from doing it.
 * Only the application itself knows best when and how to call
   rendering-related functions such as swapBuffers() and redraw(), thus
   they are protected.
 * Functions for setting up fullscreen or hiding the mouse may be called
   from user code outside the application, thus they are kept public.