Support marking packages as hidden via command-line.

This adds support for marking specific packages as hidden via
command-line switch hidePackage. This is useful when the package in
question cannot be marked with @hide, for example, because the
package name in .class file is different from package name in source
file, or because the package may need to be visible in another body
of documentation.

Bug: 15073623
Change-Id: Iffcf5f3d50cc8db25a3bbfb244ce74c287e3875f

(cherry-picked from 725c7378bf129464c118c636dbaef92ef2df993e)

Conflicts:
	src/com/google/doclava/PackageInfo.java
diff --git a/src/com/google/doclava/Doclava.java b/src/com/google/doclava/Doclava.java
index 79295fd..102c5c5 100644
--- a/src/com/google/doclava/Doclava.java
+++ b/src/com/google/doclava/Doclava.java
@@ -90,6 +90,7 @@
   public static HashSet<String> knownTags = new HashSet<String>();
   public static FederationTagger federationTagger = new FederationTagger();
   public static Set<String> showAnnotations = new HashSet<String>();
+  public static Set<String> hiddenPackages = new HashSet<String>();
   public static boolean includeDefaultAssets = true;
   private static boolean generateDocs = true;
   private static boolean parseComments = false;
@@ -209,6 +210,8 @@
         keepListFile = a[1];
       } else if (a[0].equals("-showAnnotation")) {
         showAnnotations.add(a[1]);
+      } else if (a[0].equals("-hidePackage")) {
+        hiddenPackages.add(a[1]);
       } else if (a[0].equals("-proguard")) {
         proguardFile = a[1];
       } else if (a[0].equals("-proofread")) {
@@ -580,6 +583,9 @@
     if (option.equals("-showAnnotation")) {
       return 2;
     }
+    if (option.equals("-hidePackage")) {
+      return 2;
+    }
     if (option.equals("-proguard")) {
       return 2;
     }
diff --git a/src/com/google/doclava/PackageInfo.java b/src/com/google/doclava/PackageInfo.java
index e997b27..02beaf7 100644
--- a/src/com/google/doclava/PackageInfo.java
+++ b/src/com/google/doclava/PackageInfo.java
@@ -143,7 +143,11 @@
    */
   public boolean hasHideComment() {
     if (mHiddenByComment == null) {
-      mHiddenByComment = comment().isHidden();
+      if (Doclava.hiddenPackages.contains(mName)) {
+        mHiddenByComment = true;
+      } else {
+        mHiddenByComment = comment().isHidden();
+      }
     }
     return mHiddenByComment;
   }