[libKML]: As reported in https://github.com/TauLabs/TauLabs/issues/816,
the file export will fail for extended character sets. This forces the
character set to be local, and returns an error if this is not possible.
ManualControl: apply expo to all rate type modes

The rate expo term can be applied to weak leveling, axis lock, and
relayrate modes.  This moves the math to a macro and does that.
ManualCommand: move expo terms to one line

This is a really ugly long line, but makes the overall code
probably more readable.
Merge pull request #944 from kubark42/fix-kml-unicode

Fix libkml export on non-ASCII character set.
Expo: fix expo macro calculations

Scaled previously before exponential.  This ruined the max
and min calculations.  Also the expo approximation equation
was wrong.
Expo: make it a function instead of macro
Merge pull request #950 from TauLabs/expo_ratemodes

Expo ratemodes
bl unified: use cable connected instead of check available

PIOS_USB_CheckAvailable() checks for both cable connected
as well as whether the device is fully enumerated.  This
more stringent check takes a more variable amount of time
on different computers.

It is much more appropriate to simply check whether the
USB cable is connected to determine whether we should wait
further in the bootloader.
F4 USB: Add PIOS_USB_CableConnected method

This is used by the F1/F3 BL but not F4.  Note that it
behaves slightly differently than the other targets which
look for a USB SOF event.
BL: updates per review

Remove comment ask requested, although it seemed ok. Code is self
documenting anyway.
Merge pull request #983 from peabody124/bl_check_cable

bl unified: use cable connected instead of check available