Overhaul USB HID for Leonardo and Micro

This pull request includes the features from pull request 1488 and pull request 1391. I've somewhat overhauled the code to better match the surrounding code and a few features.

I've also added code examples for the less discoverable features.

If this pull request isn't "right" yet, I'd love feedback so I can improve it.
Line 79 and 82 are incorrect. 239 != 0xDF. I looked it up and compared with other implementations.
What limit do you want to use (page 53ff)? http://www.usb.org/developers/hidpage/Hut1_12v2.pdf

Another question about that:
Why do we need this? AFAIK its only used for volume control, right? Cant we control the volume with the consumer control device better? Isnt that the normal way? This also wouln'd confuse users when to use the Consumer Control and when to use the Keyboard.

I know that this different report doesnt eat more flash, but i am not sure if its so standard for a pc. Because then we could leave out the reserved bytes as well if we go non standard. And people could try to use Keycodes which wont work anyways. So whats the real advantage of this?