QS Detail: Fix up open/close animations

 - CP from CL below to handle removing callbacks correctly
 - Make correct QSPanel handle detail callbacks (quick/full)
 - Move expanding/collapsing panel to QSDetail
 - Collapse to the point expansion was from

Fixes: 28770315
Fixes: 29057236
Change-Id: Ib70c29cbc45dd8a58a751de0ea9e4f8a25057468
(based on cherry pick from commit d319f04986e44a7e9eab5f2822f1a6510282f803)
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java
index b28d0f2..c984abe 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QuickQSPanel.java
@@ -77,6 +77,11 @@
     }
 
     @Override
+    protected boolean shouldShowDetail() {
+        return !mExpanded;
+    }
+
+    @Override
     protected void drawTile(TileRecord r, State state) {
         if (state instanceof SignalState) {
             State copy = r.tile.newTileState();
@@ -90,11 +95,6 @@
     }
 
     @Override
-    protected void showDetail(boolean show, Record r) {
-        // Do nothing, will be handled by the QSPanel.
-    }
-
-    @Override
     protected QSTileBaseView createTileView(QSTile<?> tile, boolean collapsedView) {
         return new QSTileBaseView(mContext, tile.createTileView(mContext), collapsedView);
     }