Added USB communication.

Application will be able to send and receive data via USB.

—Issues:
Not handling the corner cases yet.
Stability issues.