Added qml function to fit map to geo shape

Added a qml invokable function in the map object to fit the viewport
to a geo shape. It's heavily influenced from fitViewportToMapItems.
Also added some basic ui tests.

Added handlig for the case with an empty shape

Change-Id: Iecad849f2c1b6d9a54eab90e26435b31a138886c
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Fix potential enum value clashes in QGeoPositionInfoSource::Error.

The declarative version of the position info source reuses the C++ enums.
Nevertheless the declarative version may add its own enums as well.
Shift the enum values such that C++ and QML version of the API can stay
in sync and at the same time add values independent from each other.

Change-Id: Ic7082a3d34e7a69f6518a3f1268ee319068bf15d
Reviewed-by: Anders Gunnarsson <anders.gunnarsson@appello.com>
Reviewed-by: Aaron McCarthy <mccarthy.aaron@gmail.com>
Don't start Geoclue providers until necessary.

Creating the Geoclue master client starts the Geoclue providers. This
causes the Geoclue provides to start, even though startUpdates() hasn't
been called yet. Defer creating the master client until startUpdates()
is called and destroy it when stopUpdates() is called.

Change-Id: I8a40eb1d68b50288742b8da088bc14904b1165ba
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Update position when switching position sources.

The declarative position source only updates its position when an update
arrives. The position property is now updated when:

At construction time the position source may have a last known position
available.

When switching position sources, the position is updated to the last
known position of the new source or invalidated in the case that no
position source is selected.

Change-Id: Ib67407f252f2e60d8fd4e32179847f465c1aaf94
Save and restore the last known position.

Saves the last known location on destruction.

Change-Id: Id3c45bed4e94c9e44656d96a8dffc576c7e26a48
Made fitViewportTo* methods honor qml animations

fitViewportToMapItems and fitViewportToGeoShape ignored any animations
that was set on center and zoomLevel in qml. With this change they
are now properly animatied if any animation is specified in qml.

Change-Id: I8f88875cc9a528566ecdbe5484a413459787b316
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>