Correct the target app token for input method window

The root cause is:
There is a defect in window manager service: When a new
activity that can be ime target is added into window manager
but the Z order of input method window don't need to be
changed, then the target app token of input method window
would not be updated to new one. This defect may cause that
the layer of input method window is calculated incorrectly.

The solution:
Correct the target app token for input method window.

Change-Id: I008311e3c9b1cf5fc320b614d8675c183c506d50
Fix race condition in ActivityThread.completeRemoveProvider()

This should solve the problem when exceptions like below are thrown:
java.lang.IllegalStateException: unstableCount < 0: -1
android.os.Parcel.readException()
android.os.Parcel.readException()
android.app.ActivityManagerProxy.refContentProvider()
android.app.ActivityThread.releaseProvider()

Change-Id: I97ca9f7f0b57221bc3aa41727936292cc79b92c9
Merge remote-tracking branch 'github/jellybean' into fjpa