[DRIVERS] First-cut implementation of USB framework.

This patch adds first-cut implementation of USB framework.

USB is a complicated and very much needed framework because
of the range and diversity of devices available over USB bus.

This is still work in progress. More patches will follow.

Signed-off-by: Anup Patel <anup@brainfault.org>