Rewrite of main function loop of us_driver.

Rewrote the the main loop of us_driver so that it may only have to read
the the communication port once. This was done to reduce the places
where the program can get stuck waiting for the input. This will also
enable to implement resending of the configuration string in case
either:
-There is no input detected from the microcontroller.
-No ACK signal is detected over a long string of input data received.