Allow USB descriptor strings to be defined in boards.txt

As per discussion list:
https://groups.google.com/a/arduino.cc/forum/?hl=en-US&fromgroups#!topic/developers/Ml_djoFXyPU

Sorry it's so late. I'll reply to that thread with more detail.

It's a bit unwieldy due to me not wanting to reverse the obvious trend towards no-special-config-code in 1.5. Can rework if necessary.

Also there's a commit there that removes the hardcoded product names in favour of the ones from boards.txt. Can remove that if desired.

Thanks,

- Angus