Enhance plugin extension panels to allow ordering per a config

Enhance plugin extension panels to allow ordering to be specified
in AllProjects projects config so that ordering can be defined rather
than determined by the order in which plugins are loaded.

The interface change is backwards compatible at runtime
because the extension panel implementation will correctly
handle the null value for the panel name.

Change-Id: I51f3ac5a18b504daa5bf55d92cc33621d2247082
diff --git a/Documentation/dev-plugins.txt b/Documentation/dev-plugins.txt
index 75ef9e6..6c9b601 100644
--- a/Documentation/dev-plugins.txt
+++ b/Documentation/dev-plugins.txt
@@ -1209,6 +1209,7 @@
   @Override
   public void onPluginLoad() {
     Plugin.get().panel(GerritUiExtensionPoint.CHANGE_SCREEN_BELOW_CHANGE_INFO_BLOCK,
+        "my_panel_name",
         new Panel.EntryPoint() {
           @Override
           public void onLoad(Panel panel) {
@@ -1220,6 +1221,23 @@
 }
 ----
 
+Change Screen panel ordering may be specified in the
+project config. Values may be either "plugin name" or
+"plugin name"."panel name".
+Panels not specified in the config will be added
+to the end in load order. Panels specified in the config that
+are not found will be ignored.
+
+Example config:
+----
+[extension-panels "CHANGE_SCREEN_BELOW_CHANGE_INFO_BLOCK"]
+        panel = helloworld.change_id
+        panel = myotherplugin
+        panel = myplugin.my_panel_name
+----
+
+
+
 [[actions]]
 === Actions