Bug 1125423 - Fuse Fabric Groups Plugin cannot be enabled

Generally when there is an attempt to enable server plugins we now first
check it's configuration by looking for required properties (in ConfigDef)
and making sure there's valid value in configuration. If something is
missing, it means plugin is not configured and cannot be enabled.
ServerPluginManagerBean thows this using
PluginConfigurationRequiredException that is then presented to user.
Bug 1077744 - statement timeout during drift purge job

Changed the query WHERE clause: don't use NOT IN because NOT IN(NULL) will always return false.
See http://stackoverflow.com/questions/17150208/sql-query-with-not-in-returning-no-rows

In other words, if any row in RHQ_DRIFT as a NULL value in OLD_DRIFT_FILE or NEW_DRIFT_FILE columns, we'll never purge anything.

Besides, the NOT EXISTS variant has a better execution plan.

Use PurgeTemplate to delete rows in batches and select the keys of the rows to delete without locking the drift files table.

Also, some code cleanup.