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.

On Tue, Dec 09, 2014 at 10:29:38AM -0800, Nico wrote:
> > @@ -179,7 +225,14 @@ class Keyboard_ : public Print
> >  	virtual size_t write(uint8_t k);
> >  	virtual size_t press(uint8_t k);
> >  	virtual size_t release(uint8_t k);
> > +	virtual size_t writeKeycode(uint8_t k);
> > +	virtual size_t pressKeycode(uint8_t k);
> > +	virtual size_t releaseKeycode(uint8_t k);
> > +	virtual size_t addKeycodeToReport(uint8_t k);
> > +	virtual size_t removeKeycodeFromReport(uint8_t k);
> >  	virtual void releaseAll(void);
> 
> These virtual functions eat a LOT of flash, even if they are not used. I'd rather make them normal again or even inline the whole class in the header. Maybe this is the reason for the big delta too.

Indeed, this is certainly a large contributor to the bloat. This is where I admit I'm not sufficiently clueful about the arduino core coding standards. What's the potential downside to making these not virtual?