Multi-user MTP, handle secondary user boot.

Watch for BOOT_COMPLETED, and dispatch any current USB state or
mounted volumes which may have already occured.  This specifically
handles starting of secondary users.

The current MTP kernel driver at /dev/mtp_usb is exclusive, meaning
only one process can have it open. To solve this, the framework
cycles the USB host stack when switching users, giving the new
user's media process a chance to claim the kernel device.  We only
start an MtpServer when we're the active user.

Bug: 6925114
Change-Id: Idfcda09aed88140bb470a110a9e4434f5b79abdd
4 files changed