usb_master: Create buffer for storing leftover data

The device will send data in chunks of the endpoint size until it finishes
sending the entire range given in set_address(). When we are requested to
read less than that, we need to store the excess data until the next read.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
usb_master: Invalidate read buffer on set_address calls

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>