Make unloading gasoline sane, fix reloading items with def_charges > 0

Fixes several unloading/reloading bugs, and makes the game::unload logic a little saner.

Closes #1142. Closes #1228. Closes #1242. Makes it so that unloading a gasoline-using gun or tool goes straight into liquid handling code, rather than checking weight/volume (and hence potentially dumping the liquid on the ground with no prompt).