Add Vector, Path, Bezier and BSpline

Vector: an interface with common methods that both Vector2 and Vector3 implement for creating more general math classes. Only had to implement Vector2#mul(Vector2) for this, although it might be nice to also have #crs method.

Path: Simple general interface to seemlessly walk trough some path/process/whatever from 0 to 1. (perhaps there's already such a class i'm not aware of).

Bezier: Simple class to calculate first, second and third degree bezier curves which also implements Path. 

BSpline: Only cubic bsplines (not weighted) for now. If you like I can also modify catmulllromspline to implement Path (not sure if thats possible though, haven't checked the specifics of that implementation yet).

Bezier and BSpline shows the use of having a general Vector interface, it makes the following possible:
```java
Path<Vector2> path2 = Bezier<Vector2>();
Path<Vector3> path3 = Bezier<Vector3>();
```

I also added a test to show the usage.