qiprog: Test bulk-read capability

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
usb_dev: Do not rely on structs being packed or device being LE

As a bonus side-effect, this patch also eliminates the assumption that the
device is little-endian by properly converting any data to host endian
order.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
libqiprog: Do not use __attribute__ ((packed))

"__attribute__ ((packed))" is both non-portable and gcc-specific. Since no
more code assumes the structs to be packed, eliminate the use of this
property entirely.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
usb_dev: Properly handle byte order in write[16/32]

Only USB data is little-endian. Do not assume that the device is also
little-endian, and avoid dereferencing a casted pointer. Instead, use the
byte-order helpers

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