Restructured code to allow extra error tracking and easier adding of future commands
Allow for setReport to return multiple InputReports
Added isAttached capability for device detection checks