This prevents us from synthesizing an 'add' event if we get a 'move'
event after a 'down' event. This was causing errors because on the
framework side, it will synthesize an 'add' event if it receives a
'down' event, and if you send another 'add' event (e.g. with a 'move'
after a 'down') then it will throw an AssertionError since it already
has received an 'add' event for that pointer.
Fixes https://github.com/flutter/flutter/issues/40385
* WIP on fixing pointer event clicks
* Don't set canvaskit as enabled by default
* Use a Set of pressed buttons rather than a Map of button status to
avoid memory leaks
* Add test for pointer binding
Fix bug where event listeners weren't properly removed