With the runtime and mode portions in separate classes, a single
application should only be building with one or the other enabled. In
some applications both might be desired at build time.
The CFG_TUD_DFU_RUNTIME_AND_MODE option creates a DFU class, which asks
the application which mode to initialize to. This allows a runtime
change between RT and DFU mode, by just reinitializing tusb.
Fixes bug where the app callback was getting the length of the status
request transfer rather than the length of the data stage payload.
TODO: Right now this returns the expected length, when it really should
be returning the transfer length.
This is really just a few descriptors and then answering to the
request from the host to reboot into DFU mode.
That latter part is delegated to the app since this is platform
specific.
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>