Improved Entity interface.

This PR is my first pass at improving the Entity interface. The following has been done -

* Removed getPosition, getX, getY, getZ in favor of getLocation
* Removed getVectorRotation in favor of getRotation
* Removed EulerDirection in favor of Vector3f
* Removed interact methods as they are meant for Players
* Removed eject, dismount in favor of setVehicle
* Renamed getRiding, getRidden in favor of getVehicle
* Renamed teleport to setLocation
* Renamed isDead to isRemoved
* Updated javadocs
Please imagine the following two situations
1a)
````java
mule.setVehicle(null);
chicken.setVehicle(wolf);
wolf.setVehicle(mule);
````
is this the same as:
1b)
````java
mule.setVehicle(null);
wolf.setVehicle(mule);
chicken.setVehicle(wolf);
````
?
Now think of the other situation:
2a)
````java
player1.setVehicle(player2);
player2.setVehicle(player1);
````
is this the same as:
2b)
````java
player2.setVehicle(player1);
player1.setVehicle(player2);
````
?
The first one may be the same but not the second example.
So we should consider ejecting any passengers from the passenger before mounting the vehicle so we avoid infinite loops (2a+b) early in the API. 
If we want to keep the recursive passenger tower. We can still re add them after that using 1b. That way we cannot ever run in the infinite loop issue.