qiprog: Implement chip program action

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
qiprog: Return the result of read, write, or verify actions

Only the result of run_tests() was returned to the caller. The result og
other actions was not returned, instead returning EXIT_FAILURE. Return the
actual result.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
usb_master: Remove misleading comment in do_async_bulkin()

Leftover transactions are already handled safely, so the FIXME comment
describing the issue no longer applies.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
usb_master: Rename do_async_bulkin to do_async_bulk_transfers

This function handles both IN and OUT transactions, so rename it to reflect
that and to avoid confusion.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
usb_master: Implement bulk programming of flash chip

This implements replaces the 'writen' stub with a fully functional bulk OUT
implementation.

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