❄ Add InfoBarCompactLayout

Adds the ability to create infobars that are "compact":

* Adds an InfoBarCompactLayout that is basically a LinearLayout:
  it sandwiches custom controls in a 48dp high bar between an
  optional icon and a close button.

* Pull out code that creates the icon ImageView and the close
  ImageButton so that it can be reused.

* Add the ability for InfoBar subclasses to define whether or not
  they produce these compact infobars.

* Add some stub code to TranslateCompactInfoBar that allows
  uses this code.

This CL is meant to unblock the Sydney team from progressing;
refinements to the way InfoBar uses the InfoBarCompactaLayout
and the InfoBarLayout classes are forthcoming (along with a doc).

Screenshots:
https://drive.google.com/corp/drive/u/0/folders/0B7c8ZkXVwskDUmlESWpyZHRoeUk

BUG=705312

Review-Url: https://codereview.chromium.org/2767523002
Cr-Commit-Position: refs/heads/master@{#459834}
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
index f64a5c4..ce75062 100644
--- a/chrome/android/java_sources.gni
+++ b/chrome/android/java_sources.gni
@@ -440,6 +440,7 @@
   "java/src/org/chromium/chrome/browser/infobar/GeneratedPasswordSavedInfoBarDelegate.java",
   "java/src/org/chromium/chrome/browser/infobar/GroupedPermissionInfoBar.java",
   "java/src/org/chromium/chrome/browser/infobar/InfoBar.java",
+  "java/src/org/chromium/chrome/browser/infobar/InfoBarCompactLayout.java",
   "java/src/org/chromium/chrome/browser/infobar/InfoBarContainer.java",
   "java/src/org/chromium/chrome/browser/infobar/InfoBarContainerLayout.java",
   "java/src/org/chromium/chrome/browser/infobar/InfoBarControlLayout.java",