Further isolate layout side from animation side.

- Use local AppWindowAnimators in WindowAnimator rather than
    using shared WindowManagerService objects.
- Use local WindowStateAnimators in AppWindowAnimator rather
    than use AppToken's WindowState objects.
- Remove redundant WindowManagerService parameter passed to
    AppWindowAnimator ctor.
- Keep from copying parameters from performLayout if the
    parameters haven't changed since the last copy.
- Link WindowStateAnimator to AppWindowAnimator to keep
    from going through WindowStateAnimator.mWin,
    WindowState.mAppToken and AppWindowToken.mAppAnimator.
- Converted attached WindowState in WindowStateAnimator to
    WindowStateAnimator to eliminate multiple conversions.

Change-Id: I5e35af88d8fdc1a7454984eaea91a1bc4f926978
diff --git a/services/java/com/android/server/wm/AppWindowToken.java b/services/java/com/android/server/wm/AppWindowToken.java
index 6ecbb8e..13b072c 100644
--- a/services/java/com/android/server/wm/AppWindowToken.java
+++ b/services/java/com/android/server/wm/AppWindowToken.java
@@ -104,7 +104,7 @@
         appToken = _token;
         mInputApplicationHandle = new InputApplicationHandle(this);
         mAnimator = service.mAnimator;
-        mAppAnimator = new AppWindowAnimator(_service, this);
+        mAppAnimator = new AppWindowAnimator(this);
     }
 
     void sendAppVisibilityToClients() {