sr: Allow device-specific recovery modules

Provide a means to include device-specific recovery modules that need to
be built (i.e. not pre-built). A list of recovery modules can be
specified by a device with:

TARGET_RECOVERY_DEVICE_MODULES := rec_mod_one rec_mod_two

Change-Id: Ibd19a71318863461d472471a4f7cfddfb1b9ae0d
recovery: Always include ext4 stuff

Change-Id: I86bfa73d4004a3b44b3047ee72205a8fa079ec20
recovery: Allow 'mm' and friends to work

Change-Id: I157fb0a71e859967d7e9b0537b71f2727fbf6f30
recovery: Do not wipe cache when backing out of file browser

 * When browse_directory() returns NULL, update status to INSTALL_NONE
   so that the wipe cache logic doesn't get invoked.

Change-Id: I2651dc4d353168cb80b9e13b64e2a4ff29e81e2c
sr: Remove unused image

Change-Id: I17d55935f0e286f9b264cbbca623a94f9db6dc88
recovery: Fix install from local storage

 * Use detach mount for local storage paths in setup_install_mounts().

 * Remove hardcoded path unmount in start_sdcard_fuse().

Change-Id: I6fe5a36fa37a153b7654a3bb580c67df571eb813
recovery: Fix sideload cancel

 * Always launch adb as a child process, not a thread.  This allows us
   to cancel with SIGTERM when the host does not initiate sideload.

 * Always kill adb from the sideload thread, where it was launched.

 * Remove the magic exit file in the FUSE sideload code in favor of a
   signal handler.

 * Use a timer to wait for the fuse sideload file instead of a counted
   number of sleep calls.  This ensures a consistent wait time when the
   process receives signals.

 * Allow ENOTCONN for sideload file, in case a previous adb instance
   was terminated without properly cleaning up.

 * Provide sideload cancellation in adb_copy_file().  Note the whole
   adb_copy_file mechanism is is ugly but it will be replaced with a
   block cache in fuse_sideload.c.

 * Allow cancel of sideload thread from the UI thread via member
   sideload_data.cancel.

 * Fix semantics for stop_sideload and wait_sideload.  stop_sideload
   sets the cancel flag for the sideload thread.

 * install_package starts the progress thread, it cannot be used to
   cancel the UI wait.

Change-Id: Ibf63a6b57fe1be52227974d811f302f1b5860c06
Merge branch 'remote' into mkl