Platform: don't use magic constants in Sdl2Application.

The values now have aliases.
Platform: capture pressed buttons in Sdl2Application::MouseMoveEvent.

It's implemented separately from keyboard modifiers (Qt has it
similarly).
Platform: separate mouse buttons from keyboard modifiers.

Doing it the same way as in Sdl2Application, as this doesn't have any
performance impact (just alias for already present variable).
The other way around, i.e. combining mouse buttons and keyboard
modifiers in Sdl2Application, would have unnecessary performance
penalty, as keyboard modifiers must be queried with separate function,
even if they won't probably be used at all.

Qt employs similar approach.

The old way is preserved for backwards compatibility, but marked as
deprecated and will be removed in future releases.
Platform: implement fake GlutApplication::MouseMoveEvent::buttons().

The event is called only if any button is pressed, added Button::Left
which is always present. This is just for source compatibility with
other Application implementations.
Doc++
Math: added utility function Vector2::aspectRatio().

Consider this craziness when setting up projection or something similar:

    Vector2i framebufferSize;
    Float aspectRatio = Float(framebufferSize.x())/framebufferSize.y();

And now, behold, the convenience:

    Float aspectRatio = Vector2(framebufferSize).aspectRatio();
Platform: don't call viewportEvent() on initialization.

In addition to 37e4f9d6f7adaa7b1632caaff16b8ee897b1ced7 which did the
change for Sdl2Application (because Emscripten required it), making sure
that everything (except GLUT, which does it by default) behaves the
same.

Moreover, some applications don't expect viewport size changes at all
(e.g. the app can't change size of immutable texture used for rendering)
and thus the original way to defer the initialization until
viewportEvent() is called would be overly complicated.

Also, since framebuffer classes store viewport size in them, there is no
need to call viewportEvent() on initialization. The current ways to do
the initial call in Sdl2Application, *XApplication and NaClApplication
were nothing more than ugly workarounds for mimicking GLUT behavior,
which is bad.

Lastly, to be sure that nothing breaks in user apps, I did this change
in magnum-bootstrap long ago and all bootstrap application behave the
right way.