Add FlxSwipe and FlxG.swipes

This is a "proper implementation" of #844

A FlxSwipe has the following public fields: ID, startPosition, endPosition, distance, angle, duration
The ID is either the touchPointID of a touch or FlxMouseButton.LEFT, MIDDLE or RIGHT

Also includes a small cleanup for FlxTouch

This needs some testing on mobile targets, especially regarding the ID's  - I'm not sure what values the touchPointID of a touch can have, we have to make sure there are can't be any collisions with `FlxMouseButton.LEFT`, `MIDDLE` and `RIGHT` (currently 0, 1 and 2).

@PaulGene Would you be willing to test this?

Debugging is faciliated because of `FlxSwipe.toString()`, so you can simply trace a swipe.

```haxe
if (FlxG.swipes.length != 0) trace(FlxG.swipes);
```

Example trace:

>[(ID: 0 | start: (x: 377 | y: 170) | end: (x: 135 | y: 329) | distance: 289.56 | angle: -125.686 | duration: 0.2s )]