Add USB_STRING_DESCRIPTOR and make the Keyboard demo use it.
Use the new USB_STRING_DESCRIPTOR macro for every string descriptor.
Add USB_STRING_DESCRIPTOR_ARRAY() macro, update demos where required.
Minor documentation improvements.
Fix USB_STRING_DESCRIPTOR() macro reported length to account for the null-terminator.