bcmdhd: Fix wifi not turning on randomly

-Wifi driver crashes occasionally due to a page
allocation failure at initialization.
See: http://pastebin.com/aVHKstjB

-The solution here is simply to wait 100ms then try again up to 5
times. My testing shows that it always succeeds the second time.
charging mode: Fix boot loop on USB

-This problem was simply a matter of poor timing. When the device
boots while connected to a USB cable; plugged into, for example, a
PC, the bootloader kicks the device on. The adc_battery driver comes
online and its cable "connect/disconnect" callback is fired as
soon as it registers. Since we initialize with a value of CABLE_TYPE_NONE
and the callback is fired before the USB Switch driver "fsa9480" has been
intialized and because are in a "charging_mode_booting" situation; the adc_battery
"thinks" we have unplugged the cable while in charging mode.
BOOTLOOP...

-This solution here is to initialize with CABLE_TYPE_USB and let the
USB Switch driver put the proper value in when it is initialized.
init: charging mode fixes + logging changes..
init: reboot detection.

-Requires TARGET_REBOOT_PRE_COMMAND to be implemented. Allows
us to detect a reboot situation and disable charging mode so
we can boot normally.