Snapshot and restore DE(user) apex data.

Device encrypted, user-specific apex data must be snapshotted
and restored when a rollback occurs, but this cannot happen at
the time of activation when apexd runs normally, as the data
is not unencrypted at that point.

This adds a new subcommand to apexd to allow it to be called at the
appropriate time to handle this data. See ag/10163227 for when this
occurs.

In order for the data to be snapshotted and restored without having
to re-open all of the APEX files, the apex names are added to the
apex sessions persisted by apexd.

Cherry-pick from (unsubmitted) internal CL: ag/10162450.

Bug: 141148175
Test: atest StagedRollbackTest#testRollbackApexDataDirectories_DeSys
Change-Id: I9bc77b28be1462a902503ac702a0adc2724e318c
8 files changed