Add option to allow customize HeadersFragment

To support enable/disable focus scale of HeadersFragment,
Refactored BaseRowFragment and Presenter to allow retaining
the same ItemBridgeAdapter when wrapped Adapter changes or
Presenter changes. So user can set up FocusHighlight
on the ItemBridgeAdapter without worrying it was overwritten
when recreating the ItemBridgeAdapter.
Added BrowseFragment.onCreateHeadersFragment() for user to
override HeadersFragment.

Added more test in RowsFragmentTest, Added HeadersFragmentTest.

Bug: 34777164
Test: RowsFragmentTest RowsSupportFragmentTest
HeadersFragmentTest HeadersSupportFragmentTest

Change-Id: Id3fbc9cb0b5b0a3c637d9bc789bb1104fbaa21f3
diff --git a/api/current.txt b/api/current.txt
index 917fd00..45a0b9a 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -1521,6 +1521,7 @@
     method public final boolean isHeadersTransitionOnBackEnabled();
     method public boolean isInHeadersTransition();
     method public boolean isShowingHeaders();
+    method public android.support.v17.leanback.app.HeadersFragment onCreateHeadersFragment();
     method protected void onEntranceTransitionEnd();
     method protected void onEntranceTransitionPrepare();
     method protected void onEntranceTransitionStart();
@@ -1625,6 +1626,7 @@
     method public final boolean isHeadersTransitionOnBackEnabled();
     method public boolean isInHeadersTransition();
     method public boolean isShowingHeaders();
+    method public android.support.v17.leanback.app.HeadersSupportFragment onCreateHeadersSupportFragment();
     method protected void onEntranceTransitionEnd();
     method protected void onEntranceTransitionPrepare();
     method protected void onEntranceTransitionStart();
@@ -2902,6 +2904,7 @@
     ctor public FocusHighlightHelper();
     method public static void setupBrowseItemFocusHighlight(android.support.v17.leanback.widget.ItemBridgeAdapter, int, boolean);
     method public static void setupHeaderItemFocusHighlight(android.support.v17.leanback.widget.VerticalGridView);
+    method public static void setupHeaderItemFocusHighlight(android.support.v17.leanback.widget.VerticalGridView, boolean);
   }
 
   public abstract interface FragmentAnimationProvider {
@@ -3303,6 +3306,7 @@
     method public final void onViewRecycled(android.support.v7.widget.RecyclerView.ViewHolder);
     method public void setAdapter(android.support.v17.leanback.widget.ObjectAdapter);
     method public void setAdapterListener(android.support.v17.leanback.widget.ItemBridgeAdapter.AdapterListener);
+    method public void setPresenter(android.support.v17.leanback.widget.PresenterSelector);
     method public void setPresenterMapper(java.util.ArrayList<android.support.v17.leanback.widget.Presenter>);
     method public void setWrapper(android.support.v17.leanback.widget.ItemBridgeAdapter.Wrapper);
   }