Factor out item_stack as an abstract base class for map_stack to enable polymorphism.
Add a vehicle_stack subclass for handling items in vehicles.
Overhaul active and radio item processing to use item accessor wrappers.

Couldn't get it to work properly this way, it's just a checkpoint.
Next commit should make it work again.
Replace map and vehicle item vectors with lists.
Bugfixes.
Add an active item cache to the submap.
Hoist verification that an active item is still present to the map or vehicle specific handler.
Only iterate over items marked as active in process_items_in_submap.
Route vehicle cargo space interactions through accessors.
Hoist active item caching structs to a helper header.
Misc style cleanup.
Add active item caching to vehicle.
Update process_items_in_vehicle() to iterate across cached list of active items instead of every item.