Don't enqueue allowBackup=false apps for full backup attempts

We are correctly refusing to actually process apps for backup if they have
declared android:allowBackup="false" in their manifests, but we're still
wasting bookkeeping & a certain amount of work in tracking them as part of
the full backup queue.  Fix that; now we recognize that they shouldn't be
in the queue in the first place.

When reinflating the queue at boot time we also re-verify the participation
of each mentioned app so that we properly drop ones that have been uninstalled
or altered such that they are no longer full-data backup candidates.

Finally, if an app previously implemented key/value backup, so we think
we'll be running it in that mode in a future backup pass, but has been
updated to use the full-data path instead, we don't want to go ahead and
run a key/value pass on it.  Added a backstop check and proceed gracefully
in this situation.

(Also add bit more debug-build logging to LocalTransport)

Bug 19462310

Change-Id: I07ab4f2e68e92766d9e8f2595fa763c91193d743
2 files changed