Implement eventqueue with a ring buffer.

A generic ring buffer class is added and used by the Eventqueue.
The complicated pooling system is not needed anymore.
Use own ringbuffer implementation in usb.cpp
Refactor report code.
Fix report sending.

Reports are now buffered in a queue.
That means there can be reports enqueued. This is requeired to implement
macros or to ensure that a specific report is send.