Spring Modularization

ACS is now comprised of a hierarchy of spring application contexts.
Each plugin can contribute configuration files to add to an existing
module or create it's own module.

Additionally, for the mgmt server, ACS custom AOP is no longer used
and instead we use Spring AOP to manage interceptors.
Configuration to enable Spring Modularization

All of the code changes for the Spring Modularization will work in
a modularized context or a non-modularized context.  This commit
is the final commit to turn modularization on.  Revert this commit
to disable the modularization and go back to monolithic Spring
configuration.
Move ConfigurationDao and ConfigDepot to system context

Previously ConfigurationDao and ConfigDepot was in the bootstrap context
which was not needed.  Moving down to system to be more consistent with
the database upgrade checks.
Make SnapshotStrategy and DataMotionStrategy discovered and registered
=Comment the test for now to unblock everyone. Will file a bug and fix it
ConcurrentHashMap will through NPE on null key
Fix vmware code inclusion into systemvm.iso and other random nonoss->noredist
Fix DatabaseUpgradeChecker in standalone context

When running DatabaseUpgradeChecker as a standalone program _dao will not
be injected.  Still create an instance of VersionDaoImpl in constructor
and when DatabaseUpgradeChecker is ran in the mgmt server it will be
overwritten by the injected value.
removed PasswordGenerator.main

unused method, probably for debugging/testing purposes

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
PasswordGenerator tests

- StringBuffer replaced with a StringBuilder
- tests added

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
KVM: Change new volume/template downloads to use UUID in database
rather than creating a fresh random UUID, so admins can match
volumes frontend to backend
BaseCmd.buildResponse methods removed

Both buildResponse methods were abandoned

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
Removed unused methods from ApiResponseSerializer

getGetMethod and getGetMethodName were not used

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
BaseCmd not used methods

These private methods were only calling each other:
- writeNameValuePair
- writeObjectArray
- writeSubObject
- escapeXml
- escapeJSON

public method requireXmlEscape was only called from these methods, it was never overridden

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
Remove duplicate scripts and move the remaining items to the systemvm project
Don't capture stderr, this will return an error when the runscript command expects null when there is no default route.
Remove obsolete m2-settings file
Store agent hostname in attache, print it in logs wherever possible. This
was discussed on the mailing list as a useful debugging tool, currently
the log prints the DB id of the agent, which makes admins have to look
it up to know where the Command was run.
add missing license headers to PasswordGeneratorTest.java and an agent.properties
Add one more license header to agent.properties.ssvm