USB packet size and data polling

Added functions that allow data polling and correctly interpret the
packet size to be used in the payload.
Expected USB frame is
[Header 1 byte (0xd3) | Packet size (2bytes) | Payload ( n <
MaxPacketSize) ]

Payload will include messages:
[Message | param 1 | param 2 | ... | Param x ]
Example:
[ Change Freq 1byte | Freq 1 4bytes | Phase 1 1 byte | Freq 2 4 bytes |
Phase 2 1byte | Freq 3 | Phase 3 ]
[ Set Gain | Gain values (2bytes) ]