Explicit object order with actions to change it

The raise/lower actions are currently only available in the object
selection context menu.

TODO: Make this new object drawing order behavior optional.

Sponsored-by: Ben Wales
Introduced shortcuts for raise/lower actions

* PageUp => raise
* PageDown => lower
* Home => raiseToTop
* End => lowerToBottom

Previously, PageUp and PageDown changed the selected layer. Those have
been moved to Ctrl+PageUp and Ctrl+PageDown.

Those shortcuts in turn used to change the currently selected map. This
is also possible with Ctrl+Tab and Ctrl+Shift+Tab, but to make up for the
lost shortcuts, Alt+Left and Alt+Right were added.
Introduced object group drawing order attribute

This attribute allows specifying per object group whether its objects
should be drawn top down (from top to bottom) or in index order
(which enables manual ordering).

This change also fixes an issue where new objects could be invisible
during placement due to being drawn below other layers.
JSON plugin: Store the draw order for object groups

Also fixed the error reporting of the VariantToMapConverter and fixed an
issue when reading .js files that are modified with a text editor that
adds a trailing newline (by trimming any trailing whitespace).

And simplified cleanup a little using QScopedPointer.
Fixed compile with MSVC 2010

MSVC 2010 math header does not come with M_PI.
Merge github.com:bjorn/tiled