[BZ 1022943] Ability to trigger update of plugins on agents from UI and API
This is stage 1 of the series of commits to enable more user-friendly
handling of plugin updates.

It provides basic support for triggering updates of plugins on agents
by calling server-side APIs/GUI.
Merge remote-tracking branch 'origin/master' into bug/1022943

Conflicts:
	modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/test/TestAgentClient.java
	modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/agentclient/AgentClient.java
[BZ 1022943] Added ability to check status of plugin update on agents
Merge remote-tracking branch 'origin/master' into bug/1022943

This is to have the fix for BZ 1076389 (which blocks BZ 1022943) in this branch.
[BZ 1022943] Fixes to PluginCriteria
[BZ 1022943] Reporting changes of plugin deployments
note in the javadoc that the deploy* methods are synchronous.
[BZ 1022943] Added a new REST endpoint for working with agent plugins.
[BZ 1076104] Agent plugins don't require explicit purge to disappear
from DB.
[BZ 1076104] Server plugins don't require explicit purge do disappear.
Fixing API breakage
Cleanup of itests to not influence each other when setting server identity
and manipulating plugins.

Also fixed the PluginManagerBeanTest#isPluginReadyForPurge() by realizing
that other tests (that now correctly clean up after themselves) may have
already deleted the plugins that were marked to be deleted in the test
method the isPluginReadyForPurge depends on.
Removed unused method from local SLSB and some small docs updates.
[BZ 1080909] DynaGroup expression evaluator is not strict when grouping by
resource configuration property

Dynagroup expressions using  pluginConfiguration[prop] or
resourceConfiguratoin[prop] will now be matched 'strict' to property name.
Strict match in means resulting SQL would be 'simple.name = :argX' instead
of original 'simple.name LIKE :argX'.
First cut of a Aerogear-Unified-Push-Server alert plugin.
[BZ 1076126] - RFE: Canned dynaGroup expressions provided by plugin

Added concept of 'additional descriptor' (optional zml file living in
plugin's META-INF folder side-by-side to plugin descriptor). This file is
parsed only by server when plugin is discovered. Within this xml file, we
currently store predefined expressions for read dynaGroup definitions. Such
expressions can install dynaGroup definitions automatically. This commit
contains also logic which takes care about dynaGroupDefs created using such
expressions. When plugin updates such expression, dynaGroup is updated (same
for delete). GroupDefinition table has now "weak" reference to expression
(Plugin:ExprId)

Predefined dynaGroup expressions hardcoded in SingleGroupDefinitionView.java
have been replaced by cannedExpressions provided by plugins. From user
perspective, almost nothing changed, except cannedExpressions contain more
than just expression string, so when user selects template/expression fields
like name,description,recursive,recalcInterval are pre-populated as well.

Added 3 expressions. First groups managed servers by server-group name
(deploys DG) 2nd groups managed servers by hostname (aka domain) (deploys
DG) 3rd groups enabled deployments per server-groups

For expressions with 'createByDefault=true': dynagroups being created are
attached to plugin (having non-null cannedExpression). Whenever this
dynagroup is changed (via API or UI) it get's detached from plugin (setting
cannedExpression to null). Also on plugin upgrade or first install, if we
find a detached dynagroup having same name as we are about to create, we
just log INFO message - this happens when DG got previously detached.
[BZ 1076126] Update Group Definitions UI to show DGs from plugins

When listing dynaGroups we now show additional first column having an icon
of user - in case of regular dyna group or plugin - in case definition comes
from plugin. When user edits plugin-based definition we also warn him once
he attemts to save such expression. Within this commit i18n messages for old
template names has been removed.
bump dbversion
Merge pull request #11 from lzoubek/feature/canned-expressions

Bug 1076126 - RFE: Canned dynaGroup expressions provided by plugin
Adding new {grease|tamper}monkey script for the new login page. Also adding the exclude pattern for the old one not to conflict with the new script. Now, both scripts can live together and the right one will be used with the corresponding RHQ version. Based on the fact that new login page uses "login" substring in the url.
[880359] JavaDoc used for Remote API is inconsistent with API
I made another pass at the remote API jdoc, ensuring that all methods have at
least minimal jdoc with the correct @param, @return, @throws, @deprecated and
@since (starting with RHQ 4.5) annotations.