Add the ei_touchscreen.cancel event and ei_touch_cancel()
In the protocol it's an annotation on the touch up for simplicity/ease of implementation. In the library this is implemented as simple ei_touch_cancel() which transparently shoves the cancel onto the wire together with an immedidate up.
On the protocol parsing side we add a touch up to the pending events immediately once we receive the cancel and on the subsequent up we simply skip adding the up event. Where the up comes before cancel we skip adding the cancel event and instead update the pending up event. Good enough even though it won't detect all invalid cases.
Closes #60 (closed)