Anvil fix

The check in constructions.cpp: `construct::check_empty` does not check for items at the target nor does it check for vehicles.

This is actually a problem with all constructions: one can build a stone wall on top of some items laying around. Those items are now nearly inaccessible, the grab from adjacent square function works, but the AIM does not.

One can also build a stone wall in the open door of a vehicle (not in the closed door), which causes some problems when driving away.

Added checks for vehicle and items at target to `construct::check_empty`.
And of course: one should be allowed to deconstruct the anvil.

Fixes #7602