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>