Usb host support

Merge usb-host-support branch back into forked master