Fixes: #10547
Add item_stack, a safe wrapper for accessing items on the map.
Make i_stacked a helper function in advanced_inventory.
Switch item accesses on the map to using the new item_stack.
Handle removing active items from the map properly.
Make some cata tiles functions handle new item accessors properly.
Fix building rotation.
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.