stm32f4: usb_midi: Introduce example MIDI firmware

Tested on STM32F4Discovery with Linux host using both amidi (raw
messages to/from device) and a synthesizer (note on/off).

This example depends upon changes to libopencm3 and should not be merged until the libopencm3 submodule includes the following:
https://github.com/libopencm3/libopencm3/pull/309
It's just me, probably, but I hate things like this.  Given that you're calling this in a tight loop anyway, and that it's clled button poll, can't this be a variable in main that's passed in as a param? rather than a static inside here? (and "bool" is allowed, we're not living in c89 here :)  (if you'd like)

(not going to hold anything up for this, don't worry, just personal style really I guess)