Added basic work for providers

This commit adds classes for providers. Providers are
programs that communicates with libpt2 via a IPC system.
By extension, providers are also classes that wraps and
controls these programs.

DBus IPC system is supported in this commit, with a
generator that automatically generates code that is
suited for DBus, based on a JSON file that describes
the methods to be used.

This commit also include a small Qt API to write provder.
It is based on the Qt plugin system. Developers can
extend an interface, and it could be loaded as a provider.