[WIP] Updated vehicle construction rules

NOT READY TO MERGE - STILL IN PROGRESS

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
* 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)

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.
* 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)
* 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
* can_unmount hasn't been updated
* 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)

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