Now possible to do filled polygons.
Line Intersection is now public in case people want to test line collisions.

In addition, an overloaded version also returns a Vector2 variable for
the position of intesection. I've kept it separate in case people don't
want to return the position of intersection.
New states will now initialise and load in SwitchState.