Make input packet fields package protected for batching
Rename NvController -> ControllerStream. Use a dedicated input thread rather than a thread pool for processing input. Batch analog axis updates and mouse moves.
Rename button constants to something reasonable
Generate a better message when a decoder fails to initialize
Add support for vertical mouse scrolling