libqiprog: Don't hardcode CONFIG_DRIVER_USB_MASTER

Move the CONFIG_DRIVER_USB_MASTER to a compiler argument, and don't define
it in software. This allows the same code to be used in QiProg devices with
less effort.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
libqiprog: Remove unused 'init' member in drivers

A driver should not need to initialize itself in order to perform its
duties. A device's initialization should be handled in .dev_open, if needed
We can bring .init back later if it makes sense, but for now, take it out.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
doc: "Pretty-ize" protocol description in markdown format

The old plaintext form was slightly readable in a text editor, and
completely harsh on the eyes in a browser. I find the new markdown form
easier to read in both a browser and text editor.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
libqiprog Add members for all functions in driver struct

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

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
qiprog: Call qiprog_set_bus on the first discovered device

Set the device to the LPC bus. This is meant as a short-term solution while
the VultureProg firmware is being developed and tested.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
libqiprog: Add missing "return" statements in core.c

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
qiprog_usb_dev.h: Include qiprog_usb.h, not qiprog.h (Trivial)

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
libqiprog: Add preliminary command translator for QiProg slaves

This is the module that runs on the QiProg device, handles USB requests,
and converts them into QiProg calls which are executed on the device. This
module is transparent to the host.

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