make removing an empty gasoline tank produce an empty tank
Make wincurse handle a missing FONTDATA file by setting typeface_c to a
default value and writing out a new FONTDATA file.  Current behavior is to
error and default to something other than Terminus.
Create player::i_add_or_drop, use that to simplify a dozen call points.
Templatize inventory item removal functions and standardize naming.  Use
position-based item-identification to break most of advanced_inv's use of
invlets.
Notes: Most item related functions should be able to take 3 types of
locators--an invlet character, a position in the inventory, and a typeid.
This commit sets the pattern I'm going to use elsewhere--write an internal
function templated on type of locator, and have the 3 public functions
invoke it.  If most accesses can be moved off of invlet, invlets become
optional.
Code cleanup, simplify slice, make inventory_ui usage of slice slightly more
explicit.  This is prework for adding an indexed_invslice which can move
inventory_ui off of invlets and onto positioning.
player::i_at(int position) and inventory::find_item(int position).
Convention for positions is: 0 to n is inventory, -1 is weapon, -2 to -n
is worn items.
Added invlet<->position mapping.  Used that to change the interface for
interacting with inventory screens (right now, inventory usually converts
invlet to position, and most of the callers just convert it back).
Fix reading bug--wasn't reinforcing morale bonuses if the expected int was
above current int.
Migrate player_activity from invlet to position.  This would break
compatibility with saves that had an ongoing activity with an associated
invlet, but there aren't any usecases I know of that allow it (since
activities take control focus, and saving requires focus).
Migrate first aid to using position directly, add player::reduce_charges
to a fix pre-existing bug where first aid wouldn't be consumed when wielded.
Replaced some more references to monsters with the variable 'critter'
Replaced 'z' in player methods with 'critter'
game::handle_action migrated from invlet to position.
The Hibernator

Still needs the food/fatigue connection, but heavier-duty sleep is in.
Migrate remaining iuse functions from invlet to position.
Adds 55 gallon steel drum.

The final statement in fluid storage.
Recipe.
Tweak.
Migrate most game functions--everything but wield, reload, and drop.
Boosts stats on the ferromagnetic rail rifle.

So it does in practice, what it did in theory.