usb_master: Store maximum packet size for bulk endpoints

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
usb_master: Use endpoint size for bulk transfer size

Do not hardcode the packet size to 64 bytes, but instead use the value from
the endpoint descriptor.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
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>
usb_master: Empty read buffer before reading new data from chip

For every readn() call, data which exists in the read buffer must be placed
before any new data from the chip.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
usb_master: Keep track of range after a set_address() call

Knowing the address range is needed in order to know how much data to
expect from the USB device.

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