Use a queue for touches on WindowsPhone

As the touch events are dispatched asynchronously (while user code is running).

@Nezz @adeeb1 It would be awesome to have you test this. My WP SDK is apparently broken so I cannot build it.
If this is good please post here, otherwise I'll investigate further.

@totallyeviljake has reported another issue on #3202 that I also want to fix related to touch, if this is merged before I get a chance (tomorrow hopefully) please keep #3202 open so I don't forget. Thanks!

Fixes #3172
Fixes #3201
Fixes #3202
Fixes #3203