Time out orphaned / unresponsive restore sessions

An app that fires up a restore session but then crashes or drops its
session reference will currently render restore functions totally
unavailable until the device is rebooted.  This CL introduces an
inactivity timeout [currently 60 seconds] on restore sessions, after
which the session is shut down and becomes unavailable to the app
who nominally still held it.

Synchronization between the timeout and the normal asynchronous
use of the session by the application is managed by running both
the timeout action and the normal teardown process on the backup
manager service's handler thread.

Bug 3276362

Change-Id: I1f63b83e96e66b0e7eb15a1e20e375049babf06e
1 file changed