Introduce RecoverableSecurityException.

This takes advantage of the recently added behavior that offers to
send Parcelable exception types across Binder calls.

Certain SecurityException can be resolved if we involve the end user,
such as when a password has expired, or a user challenge is required
to proceed.  This new subclass of SecurityException provides
user-visible messaging and convenience methods for quickly rendering
that messaging as a notification or dialog.

Test: builds, boots, throws, shows as notification and dialog
Bug: 33749182
Change-Id: Iba66c7466b8fabca9e3f83c60db5a4ab849a256f
4 files changed