Implement getAbout(String) and add new LicenseText field

Also return a empty String in all methods which shall deliver a localizedString but no translations are found.
Add methods to get a localized name/description (String) and return an empty string if no translation was found.
Implement Comparable and override hashCode and equals method
Add method to remove the configuration file

The added method is mainly intended to be used in the case an addon was removed/uninstalled.
An other use case could be the reset of an addons configuration.
Remove addon correctly and put created addons in a cache

The behavior before this commit was to create a new instance of specific class of a addon on every 
get.*[Protocol|Action] call. This had the effect that the destroy method wasn't callable because the 
instances were not stored. This commit solved this problem by adding data structures which cache these 
protocols and actions. Furthermore the unload and shutdown methods are added to AddonManager to 
correctly destroy a addon on request or shutdown. The implementation of the removal of addons required 
the extension of the FileRegistry which now associate the AddonSpecifiaction with the file name.
Create the addon configuration file as $HOME/.openecard/addons/conf/<id>/id.conf

This is intended to provide a directory for addon where additional data e.g. software credentials or
custom configuration files can be stored.
Add a FileEntry to the configuration
Don't test whether marshalling back to xml works, that is completely unnecessary.

The AddonBundleDescription models an data type which is read only. The app does not create or modify
a description file.
Test all components of the AddonSpecification instead of just selected elements.
Use a utility class to extract a specific localized string from a list to avoid code duplication
Use an Enum for the allowed types of an ScalarEntry.

The newly introduced Enum defines the following types which are allowed for a ScalarEntry:
STRING, BOOLEAN, BIGINTEGER and BIGDECIMAL. The related tests are modified to reflect the
change.
Implement a uninstall method and add java-doc.
Fix the monitoring behavior.

The FilesystemAlterationMonitor seems to monitor a directory recursively so we get problems with 
the FileRegistry if e.g. a configuration file was deleted or created. This is fix by adding a condition 
which checks the file ending for the appearance of the .jar ending.
Implement and use a new Cache class which replaces the TreeMaps in the AddonManager.
Create the add-on specific configuration directory before trying to access the config file.

Furthermore the commit fixes the removal of the config. Before this commit just the config file created by the app 
was deleted. Now the complete add-on specific configuration directory is deleted recursively.
Don't allow boolean type in ScalarListEntry.
Add AboutPanel
Put creation of an AddonPanel into a separate method.

This commit avoids code duplication because the creation of an AddonPanel is triggered in the 
coreList creation and in the addonList creation. Furthermore the loadLogo method loads now 
resources from the addon jar instead of the openecard jar.
Add a new Settings and SettingsFactory class which wraps the AddonProperties and OpenecardProperties.
Use new Settings introduced in the previous commit and implement the addMultipleSelectionItem method.