add mtp responder to TWRP.
Big thanks to Dees_Troy for helping with the implementation.

Change-Id: I6c9c522b9c9de5dc139e2ecb0141008182ba07f0
Refresh partition details after changing file system

Change-Id: I24f3c8587f778c4f0ef43737243c8378a3fd0e00
Build block TWRP with RECOVERY_VARIANT

Enable TWRP to reside alongside other recoveries with the naming
convention: bootable/recovery(-flag). If TWRP resides at
bootable/recovery and a device does not specify RECOVERY_VARIANT, then
it will build like normal. If TWRP resides at bootable/recovery-twrp,
then its makefiles will only be parsed if a device specifies
'RECOVERY_VARIANT := twrp'. This prevents TWRP specific makefile
warnings/errors (notably, missing DEVICE_RESOLUTION) when another
recovery is being built.

Change-Id: I8f02fffcd79c309c7123b9428eedc69af02e126e
Only use SELinux tools from toolbox if not in busybox

If busybox has SELinux support, we don't need toolbox to provide SELinux
specific tools. Check busybox for restorecon to see if SELinux support
is present and then adjust the tools built by toolbox based on this.

Change-Id: I30a2b036b97ac3e26510d5e0498c52d7a8af36e1
Ensure that MTP is enabled by default

Change-Id: Ibd644509935cde1e52b3d368060fdcb6e16f4a99
Improve error handling during MTP startup

Change-Id: I9395481dd8d9cbd3346fe6682557236b48b4d6cd
Allow toggle of MTP debug

Via command line in TWRP:
twrp set tw_mtp_debug 1

This will enable debugging for MTP. You will need to disable and
re-enable MTP in order to see the debug logging.

Change-Id: Ia7bb0c584e10a4322b65ecf80a67ed7ee836b38e
Improve MtpStorage handling when more than one storage is present

Change-Id: I02f1984d02a85d9fd42450cc3772e88a43d9e9ff
Allow MTP debug setting to stick through a reboot

Change-Id: I81eb5eaa2286c0ee3078e01304d65b9489f13bf2
Prevent MTP enable on startup if crash detected

Change-Id: Ie1388a8acadf714a29721dd90c7f9a8aa38a860d
Properly set mtp enable variable if disabled during boot

Change-Id: Iedf08419a1fd46908e5b9186a769a0497ce62ca8
MTP Fix property list for multiple storage devices

Change-Id: Ice23fef31439a6c88d0a12380688eccd8dc3a71c
MTP Fix rename in Windows

Change-Id: Ieef2fc16aac1da3d03908cfb285895954b42a14a
MTP: Better handling of stat

Do some error checking of lstat calls and better handle those
errors.
Use lstat instead of dirent to check if an item is a directory
because dirent does not return the correct item type when using
exfat-fuse.

Change-Id: I0d008aff55a0e0b4fbeae24cf8d0c04453b7b77e
Fix reporting of folder size on exfat-fuse

Change-Id: Icfd4af21b9eeade68956e44ae89bae12398920df
MTP: Use fork instead of pthread

Change-Id: I95cf6f4def0c86f40c775738f0712323f0a0f146
update exfat from current head

Change-Id: I7d93474296612fda1dde23f6e8690668d6880e27
mktime_tz is blocking, don't use it

Change-Id: I0a66a69b68d975389302ae4361c9c106eb722538
MTP: fix some code paths

Still doesn't fix the bug of copying zip files to the root of
storage in Windows.

Change-Id: Iddec66a49c17cf48cbd1c67ad6679349ece8e05c
MTP: Build flag for setting custom MTP device/path

Change-Id: Ic19ec61dc6cb08df00eb1326d96262b46bb93bfb