Updated vehicle construction rules - ready!

Addresses #3301. Putting this up for some feedback while I keep working on it, because I know it's going to conflict with something when the time comes to merge.

Intended goals:
* Vastly simplify vehicle construction
  * The concepts of mount points, internal/external parts, etc are being removed
  * Will allow more part combinations than before (such as boards over wheels)
* Require a frame in every square before any other part can be added
* Recategorize parts based on where they are located, rather than their function, and allow stacking of all parts that don't overlap in location
* Remove the custom_cart template (it won't be necessary after this, you start with a frame and add casters and a box)
* Remove the wagon (it was not used, not complete, and not interesting)
* Plating is now an obstacle part and is mutually exclusive with most parts - most of the time you'll be installing it directly onto a frame, rather than wildly guessing if the part you want to install it over can be reinforced or not.

Current issues yet to be resolved:
* ~~Increased # of parts in a square causes examining (with the x key) to overrun the box, this needs to cut off early and show something along the lines of "(X more...)" instead.~~ This is a separate issue unrelated to this PR.
* ~~Some parts are missing from the veh_interact pane's examining when you look at a square (the parts are there, just not shown in the list)~~ Fixed!
* ~~The concept of 'external parts' is still used in many places, this needs to be changed so instead "the part in that square with the highest z-ordering" is the one counted~~ Fixed, the 'external parts' list is now rebuilt using the new rules.
* ~~can_unmount hasn't been updated~~ Fixed!
* ~~Vehicles have been updated to have frames in every square, but haven't had extra stuff added yet (ie boards above wheels on the cube van)~~ Fixed for the cube van, I'm not going to touch the others (but someone else is free to do so)
* ~~Doors can only be opened by bumping them, and can't be closed.~~ Fixed!
* ~~You can remove a seat before removing the seatbelt (not related to this PR, but I'm going to fix it anyway)~~ Fixed!
* ~~You can separate a car into two sections and still have it count as one vehicle with precise part removal (not related to this PR, but I'm going to fix it anyway)~~ Fixed!
* ~~Loading a car from an old version should update it to have frames in each square~~ Fixed! (Can't infer the type of frame, so it's always a frame_vertical)
* ~~Wreckage that has multiple frames at (0, 0) can't be removed~~ Fixed!

PRs that should follow this one:
* Lights that go in the "on_roof" location to represent emergency vehicle lights
* More interesting carts (see #3421)
* Boats that have propellers instead of wheels in the "under" location