UsbDeviceManager: Add support to append an extra function in a composition

When "rndis,diag,adb" composition is enabled through setprop, composition
switch happens, but the Rndis fails to configure to get the IP.
It is required to set the USB Tethering option from the UI to configure
Rndis parameters, but the target switches to "rndis,adb" composition when
USB Tethering option is set.

This change allows the user to add the extra function using the following
command through adb shell in a new system property "persist.sys.usb.config.extra"

For example: setprop persist.sys.usb.config.extra diag

Thus allows the target to switch to "rndis,diag,adb" composition when diag
is enabled in persist.sys.usb.config.extra and UI Tethering option is set.

Change-Id: I9c0d1a96d369ae1bf5f66e4f2a72ec94c4373a3f
UsbManager: Increase delay for USB DISCONNECT event broadcast

When a function (e.g. MTP/RNDIS/ADB) is enabled USB re-enumeration
happens which results in USB disconnect followed by USB connect.
UsbDeviceManager delays the USB disconnect event notification
so that clients wouldn't treat it as if USB cable is really removed.

Increase this delay to 5 seconds, as on some HOST (mainly WinXP) it
has been observed that re-enumeration takes longer time.
Also, for actual cable disconnect make sure that DISCONNECT is
broadcast immediately.

CRs-Fixed: 438139
Change-Id: I589e5014e7583b24c6e16f91013f7d67c55a69c0