Add Vehicle entity with core events

Add Vehicle entity with core `VehicleEvent`, and enter/leave events.
This was discussed somewhere, but I can't find it now. No, it should return Entity. Technically, all entities are vehicles.