usb: Support for MIDI class devices

Provides all of the config descriptors for MIDI class devices together
with a sub-set of the audio class shufficient to put together a full
fledged MIDI device.

The new header files fail checkstyle due to use of camel case. However since the camel casing reflects both the USB standards documents and the existing USB headers I have left the camel case as-is.

Also requires is an extension to struct usb_endpoint_descriptor to allow
class specific endpoint descriptors to be expressed. All of
libopencm3-examples use the USB_DT_ENDPOINT_SIZE (rather then sizeof on
the structure) so there should be no compatibility problems with this
change.

Building on the work above I have a fully worked example for STM32F4Discovery and will send a pull request to libopencm3-examples for this shortly.