Rewrite the wl_touch interface implementation to adhere to new design principles
With the new design, a single TouchInterface manages multiple wl_touch objects. This allows implementing things such as touch grabs, etc.
Note: This patch depends on wl_pointer changes. The relevant commit in this MR is "Port wl_touch wrapper to the new approach"