Experimental batch crafting time reduction
Remove redundant get_batch_time function
Remove redundant instances of difficulty property

Difficulty is now loaded only by the requirements class, and is
automatically shared with constructions and recipes.
Logistic function batch crafting time reduction

A recipe can now have optional `batch_time_factors` array which
specifies maximum time reduction for a single craft as a percentage,
and a minimum batch size to reach the full time reduction.
Add diesel fuel to ammo.json.
Add diesel to ammo_types.json
Add diesel engines to var_vehicle_parts.json
Added diesel engines to vehicle_parts.json ( top level )
Added diesel fuel tanks to vehicle_parts.json ( top level )
Fix diesel fuel color
Added diesel to the fire code of field.cpp
A few recipe category fixes.
Recategorized food for more consistency.
fixes the drilling charges drain. rest is same with the
fire-from-mag-glass branch
Revert "Revert "Merge branch 'fire-from-mag-glass' of https://github.com/jcd000/Cataclysm-DDA into merge""

This reverts commit 5c46c3cd3bb607d3e57b8ce501c98d16789cc8fe.

revert the revert!
Merge branch 'fire-from-mag-glass-2' into fire-from-mag-glass-2.5

fix error fire drill
Glass shard recipe from sand, salt and ammonia.
Added lime or bonemeal to glass as stabiliser.
Default to the second vpart in veh_interact remove

This is a quality-of-life improvement for when removing large numbers of
vehicle parts. The part removal menu lists all the vehicle parts in the
current tile with the frame first, but that frame is almost always the
last thing that can be removed from the current tile. Therefore, if more
than one part is present, we will select the second part instead.

Note that parts with attachments (e.g. alternators on engines, or
seatbelts on seats) are actually listed in the correct order for this to
continue working (i.e. seatbelts come first, then the seat they're
attached to).
Adds a line in craft menu to signify book recipes