Changes from 1.0.0 to 1.0.2
-----------------------------
** Bug
    * [FELIX-3968] - StringIndexOutOfBoundsException in packageadmin plugin
    * [FELIX-4996] - Dependency Finder should use Inventory instead of deprecated ConfigurationPrinter

** Improvement
    * [FELIX-3656] - Change the label for the dependency finder plugin to "Dependency Finder" from "Packages"
    * [FELIX-3861] - Set felix.webconsole.category on Web Console plugins
    * [FELIX-4430] - [PackageAdmin Web Console Plugin] Provide using bundles with versions

Initial Release 1.0.0
---------------------

** Improvement
    * [FELIX-3026] - Add PackageAdmin information to Configuration Status dump
    * [FELIX-3444] - DependencyFinder should use JQuery UI table look
    * [FELIX-3474] - Make package admin work with J9 and other embedded VMs
    * [FELIX-3476] - Make package admin to use SimpleWebConsolePlugin
    * [FELIX-3484] - Package admin plugin is missing German localization

** New Feature
    * [FELIX-2209] - Implement a PackageAdmin plugin
    * [FELIX-3007] - Simple Package Admin plugin
    * [FELIX-3045] - new webconsole plugin - dependency finder

** Task
    * [FELIX-3529] - Add DEPENDENCIES file
