Addresses issue #1667
Choosing not to study still reads the book for one step
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.
Merge remote-tracking branch 'origin/imagefonts'
Merge remote-tracking branch 'upstream/master'
[WIP] Framework for determining part power usage
Adds power requirement for headlights
Adds vehicle alternators and car battery spawns
Merges master branch changes to vehicle parts
Added option to spawn zombies at shelter
Update alternator and car battery PR.

Conflicts:
	data/json/items/melee.json
	data/json/vehicle_parts.json
	data/json/vehicles.json
	lightmap.cpp
	savegame_json.cpp
	veh_typedef.cpp
	vehicle.cpp
	vehicle.h
Tab removal.
Added support for .50 BMG
Added support for .50 BMG
Added a bipod
Added .50 BMG

Thanks Zaweri for the code that he said I can use
Added component returns for breaking down .50 BMG
Added a Barrett M107A1