Listen for RGB commands from app
Increase poll time to improve encoder read performance
When missing a transition, use history to determine a suitable delta
Split out reading state to polling code