Touchcancel was not clearing _touching lock. Rewrite unit tests for better clarity and more thorough testing of both mouse and touch events.