plugins: changed API of PluginInfo class

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
plugins: replaced constructor with factory method

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
plugins: add valid field to PluginInfo

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
plugins: use new PluginInfo::isValid()

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
plugins: use PluginInfo as value not as pointer

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
plugins: add helper method PluginsManager::loadPlugin()

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
plugins: create Plugin instances with provided PluginInfo

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
plugins: do not allow invalid Plugin instances

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
plugins: move plugin name to PluginInfo class

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
plugins: rename Plugin::m_info to Plugin::m_pluginInfo

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>