sysui: refactor for extensibility.

Extended QSDetail / QSTile to control the behavior with
header / footer.

Bug: 28169547
Change-Id: Ice7d5fc16a0e9080a5c842295abe87bc1e2d71be
(cherry picked from commit dbdcb44b7fa49931fc506535a4cc02c20085bca5)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
index 7e2fa2d..12b8b91 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
@@ -955,7 +955,7 @@
         onQsExpansionStarted(0);
     }
 
-    private void onQsExpansionStarted(int overscrollAmount) {
+    protected void onQsExpansionStarted(int overscrollAmount) {
         cancelQsAnimation();
         cancelHeightAnimator();