Adding support for manually specifying HTTP/2 :authority and :path headers.

-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=75316631
diff --git a/core/src/main/java/com/google/net/stubby/Metadata.java b/core/src/main/java/com/google/net/stubby/Metadata.java
index ca83e0c..c757294 100644
--- a/core/src/main/java/com/google/net/stubby/Metadata.java
+++ b/core/src/main/java/com/google/net/stubby/Metadata.java
@@ -301,6 +301,26 @@
     public void setAuthority(String authority) {
       this.authority = authority;
     }
+
+    @Override
+    public void merge(Metadata other) {
+      super.merge(other);
+      mergePathAndAuthority(other);
+    }
+
+    @Override
+    public void merge(Metadata other, Set<Key> keys) {
+      super.merge(other, keys);
+      mergePathAndAuthority(other);
+    }
+
+    private void mergePathAndAuthority(Metadata other) {
+      if (other instanceof Headers) {
+        Headers otherHeaders = (Headers) other;
+        path = otherHeaders.path != null ? otherHeaders.path : path;
+        authority = otherHeaders.authority != null ? otherHeaders.authority : authority;
+      }
+    }
   }
 
   /**