Overhaul vehicle trap interaction

Fixes #9264 
The problem is that vehicle::damage() randomizes the part that's actually hit, so I had it call direct_damage() instead.
While I was at it I made individual traps do different amounts of damage to wheels.
caltrops/beartraps/xbow/shotgun will take out regular wheels, but only heavily damage wide wheels.
sinkholes and pits will take out both regular and wide wheels, but not quite take out armored wheels
landmines and booby traps will take out any kind of wheel.
Also updated the message, it only tells you what kind of trap you ran over if you previously detected it.