Correct comparions of vehicle part index

1. Fixes comparison of vehicle part index (`vpcontrols >=0`)

2. Always call `map::veh_at` because in the code above that, the examx/examy might have changed and the previously gathered vehicle part is where the player is standing.

Test it by standing on an empty vehicle part (no cargo/welding/crafting/kitchen/...) tile next to a welding rig.

`veh = m.veh_at(u.posx, u.posy, veh_part);` will return the vehicle and vpart the PC is standing on.
Than `veh = m.veh_at (examx, examy, veh_part);` will not be called as `veh != NULL`. So the further checks:
```
int vpcargo = veh->part_with_feature(veh_part, "CARGO", false);
...
```
will work against the tile where the player is standing on, not the adjacent tile that has been chooses. If the tile has no special part, the if-condition is not meet and it falls through to the exam_vehicle call.