Use of pre-allocated buffer in TouchPanelState()

Use a pre-allocated buffer to avoid new allocations per frame.

In GetState() the next free part of the buffer is populated from
_touchState.
_touchBufferOffset updated to point to the next free part.
The returned TouchCollection is mapped to the copied contents of
_touchState.