Add Named interface to recognize objects with a getName()
Add registry interface

Registry interface will be used to store and discover extensions
Add ability to programatically disable CloudStack ComponentConext intialization

As we moved to a more Spring managed lifecycle, the lifecycle management
in ComponentContext is not needed.  The transition to fully spring managed
will not happen all at once.  The management server will be done first and
then AWSAPI and UsageServer will come later.  This change allows the
ComponentContext in the context of the management server to be bypassed.
Note, by default, the ComponentContext will run its initialization.
Cleanup DefaultUserAuthenticator and removed masking _name variable

DefaultUserAuthenticator maskes the _name varible in ComponentLifecycleBase
making the setName() method not work as expected.  This patch cleans up the
code such that getName() will be getClass().getSimpleName() unless
overridden in the Spring configuration.
Switch to setter injection for extensibility

Various classes are using member injection to inject extensible objects.
Really those object should come from an AdapterList that is injected in.
This patch switches the code to use setter injection that will later allow
spring to inject an AdapterList or something similar to allow
extensibility.
Add license headers to fix build
Wrong field was used in check
Remove file added by accident in previous commit.