Topping off a partly-full container from an infinite source is a success.

Fixes issue #629.
NPC conversation uses player::skillLevel, rather than uninitialized sklevel

Fixes a bug where if you tried to get training from an NPC right after loading a save, the NPC would think that you've got 0 in all your skills.
Only offer one swap when picking up items.

Fixes issue #588.
Fix NPC trading crash

Right, getting pointers to a copied inventory that goes out of scope will cause issues. Why do we even have a copy constructor for inventory, anyway?
Fix removal by charges to actually remove the item if it's a full stack
Rename method to inventory::remove_item_by_charges

I don't like using "quantity" in the method name of something that only ever works on items with charges.
Zero vehicle turn count if velocity == 0

I *think* this will fix the "stopping out of map vehicle" debugmsg spam? Seems like it was the result of an uninitialized member variable.
Fix [advance|decrease]_nextinv - .end() points BEYOND the last character, so dereferencing it doesn't work (and is also illegal)
Loaded longbows (buggy state) will fire
Prevent longbow (1) from happening - thanks FunnyMan

Thanks to FunnyMan's reproduction steps, I've figured out what's causing longbow (1) to happen. Hurray, long-running bug squashed :).
Merge Don't offer to drink when topping off a water container from an infinite source.
Merge mass of bugfixes.