Numerous fixes
Better handling of USB failures at setup (or runtime).
No more resetting the device on plug-in unless necessary.
More precise framerate timing.
Merge usbsetting and usbprofile structs.
Store the harware profile in a separate memory space, track whether or not it's been
loaded.
Key event improvements
Make a new mutex so key events don't need to lock the main mutex every time.
Process modifier keys before other keys so shortcut combos don't get missed.
More notifications.
Notifcation for keyboard layout and FPS changes.
Added get command to retrieve info.
readcmd: Reset context after a new line
USB (Linux): Few more tweaks/fixes