TouchPanelState.GetState() garbage

Implement TouchCollection as a fixed size array. 
https://github.com/mono/MonoGame/issues/2876

Garbage free for up to 4 TouchLocations. 
Otherwise the array is copied to TouchLocation[] _collection as before.

Instead I think you can do this....

```
public TouchCollection(TouchLocation[] touches)
   this((IList<TouchLocation>)touches)
{
}

internal TouchCollection(IList<TouchLocation> touches)
{
   // Real constructor.
}
```

Array and `List<T>` both support `IList<T>` ...  I don't think it generates any garbage, but you should double check.