[B + C] Implement cancelling of VehicleMoveEvent Adds BUKKIT-4753

##### The Issue:

Currently, there is no way to cancel a vehicles movement.

##### Justification:

Some plugin developers(like me), need to prevent a Minecart from moving. If you teleported the Minecart, it would cause another VehicleMoveEvent making an infinite loop, which is bad.

##### Breakdown:

All this does is make the VehicleMoveEvent implement Cancellable and add the basic cancel stuff. In CraftBukkit it checks to see if the event was cancelled and if it is, it set's the vehicles location back to its previous location.

##### Testing Results and Materials:

Test plugin code: https://gist.github.com/lolzballs/6573032
Built CraftBukkit with changes in Bukkit and CB, and put a minecart on a rail. The minecart does not move.

##### Relevant PR(s):

B-929 https://github.com/Bukkit/Bukkit/pull/929 - API portion 

##### JIRA Ticket:
BUKKIT-4784 - https://bukkit.atlassian.net/browse/BUKKIT-4784
(CLOSED) BUKKIT-4753 - https://bukkit.atlassian.net/browse/BUKKIT-4753