qiprog: Add test to check for buffering bugs in device or driver

These tests stress set_address/readn combinations in a number of ways which
expose seemingly innocent bugs. More details in comments.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
NFM: usb_master: Allow buffer overflow in readn()

The number of USB transfers was determined by a round-down division. This
meant that whenever we are asked to read data with a size not a multiple of
the endpoint size, we would read less.

Switch to using a round-up division. This will cause the destination buffer
to overflow in a number of situations. The overflows will be fixed in
subsequent commits.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
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>