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
Add hotplate menu to kitchen unit try 1

In my quest to make the kitchen usable as a hotplate to heat food and
cauterize, here's my first try.  Needless to say, it's a disaster,
errors out the wazoo.  Not really sure what I'm doing, just hoping
people who can actually code can tell me how to make this work :)
remove tabs, extra parameters

Trying again, still lots of errors.  I always forget how to deal with
"not declared in this scope"
Revert "remove tabs, extra parameters"

This reverts commit 1991d0b497e6d764148fa2fd8f26e912c9b66ba0.
Revert "Add hotplate menu to kitchen unit try 1"

This reverts commit a09796354a85ab96fed25136931d911d6a9bb759.
try 3

Still pretty confused, trying to implement Kevin's idea to create a fake
hotplate and use it.  Couldn't even find UPS mentioned in vehiclle.cpp,
trying code from map.cpp for other parts of kitchen unit.  I have a
feeling this attempt is just gibberish, but who knows.
Increase fungaloid spore attack frequency

Number of spores spawned is adjusted to be ~ the same.
Allow for ::infect to use disease intensities

Also move spores into a stacking 3 intensity disease
Try 4, now with 20% less gibberish!

This may be the first code I've added to this PR that isn't just random
scribbles.  It still doesn't work, of course, but it FEELS less moronic.
Anyway, this adds Kevin's suggestions of turning the string of prompts
into a menu and using the code from vehicle::fire_turret_internal to
create a fake hotplate that uses the vehicle's battery.  I think the
menu part of this is functional, but I still don't know how to make it
actually use the fake hotplate.  I also need to figure out how to
declare the extra functions in the menu.  Here's the list of compile
errors this generated, maybe we can get this sorted out.
C:\Documents and Settings\Mason\My
Documents\GitHub\Cataclysm-DDA\game.cpp||In member function 'void
game::pickup(int, int, int)':|
C:\Documents and Settings\Mason\My
Documents\GitHub\Cataclysm-DDA\game.cpp|7303|error: 'drain' was not
declared in this scope|
C:\Documents and Settings\Mason\My
Documents\GitHub\Cataclysm-DDA\game.cpp|7304|error: 'tmp' was not
declared in this scope|
C:\Documents and Settings\Mason\My
Documents\GitHub\Cataclysm-DDA\game.cpp|7305|error: invalid use of
non-static member function 'void iuse::hotplate(game*, player*, item*,
bool)'|
C:\Documents and Settings\Mason\My
Documents\GitHub\Cataclysm-DDA\game.cpp|7307|error: 'refill' was not
declared in this scope|
||=== Build finished: 4 errors, 0 warnings (0 minutes, 8 seconds) ===|