Smart pointer handling lifetime of the NabtoDevice context to ensure it is not freed until all components has freed their resources.
typedef std::shared_ptr<NabtoDevice> NabtoDevicePtr