BHV-15361: Refactor Popup to work more reliably.

* Reworked moon.Popup to use no measurements and hardware acceleration.
* Rewrote Popup to make extensive usage of standard `show` and `hide` methods.
* Resolved an issue with non-animating popups where new popup z-indexes would be created, but never destroyed/removed, caused by blind implementation and execution of `applyZIndex` from the current and inherited `showingChanged` handler.
* Removed now-superfluous private methods, facaded other useless public methods into newer mechanisms.
* Simplified logic for the `showingChanged` method, removing unnecessary calls to methods that are called by the parent/inherited method anyway.
* Scrim hiding is now hardware accelerated.
If the intent of `showDirect` is a one-time skip of animation, I don't think it should permanently alter `animate`.