Adds misc functions

Component.SnapPartent(Component other)
places the parent of a component's transform at the position that lines
the local game object up with some other game object.

Quaternion.To(Quaternion b)
returns the rotation from that rotation to the other rotation

Changes TouchPhaseF to TouchF
Adds functions that work with touches rather than just touch phases

Adds a Rect.Contains(Touch) extension to RectF
Adds TouchControlStick class - works differently than
SimulatedControlStick

Adds GameSys - some static functions for common Application.Platform
testing

Changes Array.Choose() to return default values if it is null or empty

Adds a nifty set of conversions for List<Component> or Component[] to
convert them to lists or arrays of other components, which sees if there
is a component of the same type for each element in the array, and if
there is, adds it into the returned list/array