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
It is better, but i would like to have it very precisely.
What happens with that left behind vehicle. (Example: `This entity is ejected from any vehicle it might be in before being moved`) So before being moved the entity does not really have an vehicle and therefore the vehicle is almost untouched by the method. But this hints to an `UnmountEvent`...  what happens if the `UnmountEvent` is cancelled?
What happens if this entity is a vehicle (`Minecart`) to any passenger it might carry at that time?

This should also be specified for the other `setLocation(...)` methods.
Propably you should specify that
`setLocation(Location)` does the same as `setLocation(Location, false, Cause.PLUGIN)`
then only `setLocation(Location, boolean, Cause)` will needs the whole options explained.