Various fixes to USB interface

Fix some USB compliance test failures (some MSD compliance still failing)
Fix MAC USB serial issue
Fix newer Linux kernel compatibility issues (not 100% confirmed – I’m awaiting feedback from Vodafone)
Fix for Kinetis MK20 USB Device driver - Freescale