Add unified page push function

The Silica & Controls way of pushing pages is a bit different,
so a unified function is needed.
Allow all screen orientations by default
Rename IconButton to MIconButton & toggle-button support

As the Silica component set (any maybe some others as well)
has an element named IconButton, we need to rename "our" IconButton
to MIconButton so that we can differentiate those two.
And as a followup, add support for acting like a toggle-button.
Add the MapButton element and use it on the MapPage

#unlike the Controls Button, the Silica button is text-only. And
both Silica button & IconButton look crap on non-Silica supplied
background, such as the map. :)
So lets just use our MIconButton element with a different default color.
Add support for detecting device orientation
By default, the Controls ApplicationWindow is in landscape
Return pushed page instance
Rework page loading so that it also works correctly with Silica
Fix Jolla device detection

Subprocess returns bytes, those need to be decoded
& a trailing newline stripped.
Use back buttons & page background based on platform
MapPage needs to "inherit" Page or it has issues with pushing in Silica
Set portrait property on every device orientation change
Transparent cover :)

Loading a nonexistent QML for the cover makes it transparent. :)