Add initial locations to vehicle parts.
New vehicle part installation rules! See #3301 for details.
Remove the wagon.
Forgot about parts with a location of "". They can now be placed properly.
Make plating into an obstacle, since it replaces boards instead of going over them.
My god. It's full of frames.
Move turrets to "on_roof" location so they can't overlap solar panels.
Calculate z-ordering of parts based on location, now that the EXTERNAL flag is no more.
Replace quadratic find_external_parts implementation with a linear one, and call it whenever a part is installed.
Removed a needless void* followed by a hard cast - why wasn't this a WINDOW* already?
Add missing roof to trunk in the bubble car.
Fix up In/Out detection - prevents broken seats, frames etc making a square be 'outside'.
Tidy up the part display code a little.
Fix the veh_interact pane not showing all parts in the examine window.
'o' and 'c' can open/close car doors again.
Update can_unmount (mostly) with new rules. Fixes being able to remove a seat before the seatbelt.
Implement the BFS in can_unmount, make sure it is checked on all parts, fix seatbelt check, and remove the no-longer-needed internal_parts() function.
And lo, for the cube van did have boards above its wheels! And all was good.
Add code to insert frames into legacy vehicles.
Fix the issue with plating by leaving it as an obstacle but making its z-order so low it is never shown; only its color change is seen.