This allows gui widgets to utilise native platform interfaces.
Additionally attaching the instance to QgsGui allows QgsNative
to become a QObject in future if required and for use
of signals/slots in the native interfaces.
A QgsNative base class is added, that offers default implementations for
a platform interface. These methods can be overridded for the current
platform at compile time to allow specialized handling for integration
with the current system.