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>