qiprog: Build with -Wextra, and eliminate warnings

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
libqiprog: Build with -Wextra, and eliminate warnings

CMake does not propagate compiler definitions into subirectories, so add
-Wall and -Wextra to libqiprog as well, then fix the warnings.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
buildsys: Allow libqiprog to be built standalone

Move all of libqiprog's dependencies in libqiprog/CMakeLists.txt to allow
libqiprog to be built independent of the qiprog application.

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

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

mingw32/64 and friends have a hard time understanding packed structs. Stop
relying on the structs being packed and serialize/deserialize properly.

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