UI Keyguard fixes

- Streamline the various keyguardDone paths. The keyguard will be
dismissed if and only if both the hide animation has run and the
Keyguard is ready for dismissal. This fixes a bug in which the
hide animation was not run.
- When we get an external dismiss call, make sure to collapse the
panel as well.
- When we execute an action and Keyguard is occluded, we execute
if after the Keyguard is gone so there are no weird transition
because Keyguard might get unoccluded.

Test: Manual for the above flows.

Bug: 30961403
Bug: 27422134
Change-Id: I43decfeec270c4ed628bd9479109150c57201dae
3 files changed