advanced_inventory: choose amount of charges on pickup. item.charges(): 2 optional arguments for output precision.
No point in asking if you can't pickup a single charge.
Merge, and compensate for definition of itype.volume that is completely geschtonkenflapped:
Merge item::volume precision and unit arguments with
 item-with-charges-volume-scale-defined-by-max-charges-which-is-named-stack-size
behavior. precise_value now returns multiple of 1000, since the current maximum item::max_charges() / stack_size(.json)
is 200.
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.