libqiprog: Add members for max and end address in device struct

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
libqiprog: Initialize all device struct members to 0

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
libqiprog: Add endian-conversion helpers

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
usb_master: Handle endian awareness to and from USB transactions

Write OUT data in LE format and read IN data from LE format.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
doc: Add infrastructure to generate Doxygen documentation

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
doc: Organize Doxygen documentation in logical groups

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
doc: Update protocol description for parsing by Doxygen

The protocol itself is not changed, only the markdown structure so that
Doxygen can properly parse it to HTML.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
libqiprog: Add first batch of doxygen documentation

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
libqiprog: Document the core functions which are implemented

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
libqiprog: Move qiprog_address struct to private header

The qiprog_address struct was really designed to carry data over USB, and
does not belong in the public API. Move it to qiprog_internal.h

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
doc: Document public QiProg structures and enumerators

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