Allow removal of the (0, 0) vehicle part

...through some clever sleight-of-hand. When the (0, 0) part is removed (forcibly or otherwise) all remaining parts will be shifted so that a new frame occupies the (0, 0) slot. The vehicle then moves the same distance in the opposite direction so that the end result is that it doesn't appear to have moved at all.

This means that the (0, 0) part is no longer utterly indestructible, or an obstacle to renovating cars (or running them over in a semi). It's also a necessary prerequisite for being able to shear vehicles completely in half to create new vehicles, because the second vehicle would need to have its parts shifted in order to have a valid (0, 0) point.

Also contains a minor refactor to DRY up vehicle.cpp a little by pulling the vehicle refreshing code into its own function.

Clearly, now that you can actually flatten a car without the (0, 0) part getting in the way, the next vehicles to be added should be bulldozers and/or steamrollers.