Fairly extensive changes to get USB working. Still not quite there.

It enumerates on OS X, but doesn't present the CDC interface yet.