Refactor iuse methods and callers to return the number of charges used instead of draining charges themselves.
Wrapped iuse function pointers in iuse_function class.

This has two goals:
- Better abstraction of iuse's, making it easier to later add lua iuse's
- The ability to do some pre-/postprocessing on iuse's, including common cleanup tasks like applying used charges etc., for this iuse_function::call can be modified
Bring iuse refactor up to date with mainline.

Conflicts:
	iuse.cpp
	player.cpp
Merge branch 'iuse' of https://github.com/CIB/Cataclysm-DDA into refactor-iuse
Add a virtual accessor for number of charges.
Revert iuse helper functions to returning bool.
Convert iuse return value from weird bool-like thing to returning the number of charges to deduct.
Rearange player::eat to only apply effects of consuming items if the iuse didn't fail.
Merge branches 'refactor-iuse' and 'refactor-iuse' of https://github.com/kevingranade/Cataclysm-DDA into refactor-eating
 Added player::consume() method, which is common for eating/consuming.
 Added player::my_eat() method. my_eat() is temp method which
replaces only eating behavior. In future my_eat() shuld renamed to eat()
and consume shuld replace old eat().
 Old eat() method removed.
 New consume() method is used instead of old eat().
 For food and drinks comestable items new eat() method is used.
known issues:
 consume() don't check return value of eat() method.
 consume() right now support only 'FOOD' and 'DRINK' comestible types.
 player::consume works with "MEDS"
 player::consume check return value of eat.
Allow items to be spawned in vehicles. 16% chance of cigarettes in a car as a proof-of-concept.
Allow vehicle items to spawn as groups by listing them as an array.
Chance of a lighter on the driver's seat of a car.
Chance of jack+wheel in a car trunk.
Small chance of screwdriver, scissors, or crowbar in car trunk.
Tiny chance of roadmap in passenger's side seat.
Chance of flashlight, small chance of first aid in passenger's seat.
sporadic style cleanups.