New interrupt-driven USB packet processing implementation

This moves all RX packet processing into interrupt context, removing the queueing bottleneck that previous firmwares experienced. Before this change, we could handle at most ~3 packets before they would start NAK'ing due to lack of buffer space until the next main loop iteration pulled additional packets into the fbNew buffer. Now packets can immediately go into fbNew unless there's a pending frame finalization. This vastly improves the efficiency of the USB protocol, and we need far fewer NAKs.
Merge branch 'master' of github.com:scanlime/fadecandy