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.
Added support for provider loader

This commit imports the provider loader.
The provider loader is used to load Qt plugins
that are based on the provider interface, and
make them fully fledged providers.
Added support for test