Color books with unknown contents red

This code should (SHOULD! please review carefully, since I'm not a code maestro) color all books that the player doesn't know the contents of red -- either because the player cannot read at all, or because the player hasn't yet skimmed the book.

I am open to suggestions of other colors. Red seemed like a good choice for "unknown." Maybe pink would be good, so it seems less urgent.
Update item.cpp
Formatting & error-fixes for book colors

Coding /is/ a perishable skill, after all.
Book color fix again

Whoops missed a paren.
Fix crash on sleep

The "lying down" disease would add the "sleep" disease which would invalidate the (implicit) iterator use by the range-based iteration.
Handle calendar::season_length without active world.
tweak to bloated zombie.
further range
Revert "further range"

This reverts commit af1eb2a166271a375a2e50aebcf48c0edb36591b.
Merge branch 'we-dont-need-no-bugs' of https://github.com/BevapDin/Cataclysm-DDA into merge
Merge branch 'tweak-bloated' of https://github.com/Lain-/Cataclysm-DDA into merge
Fixed a leftover code that was blocking skill-up.  No big.
Replace INBOUNDS macro with map::inbounds function

Make map::inbounds const,
Add a second version of map::inbounds to check tripoints.
Because both are functions and not macros, the compiler will automatically choose the correct one.
remove game::is_in_ice_lab as it's unused
add constant access to field iterator
Port Creature::pos to 3D (tripoint)

Changed Creature::pos to return a tripoint instead of a (2D) point.
Change creature_tracker to use tripoints only.
Made wrapper for rl_dist that takes tripoint and point, so one can call
them with any combination.
This creates some conflicts where the function was used. The position is temporarily wrapped into 2D-points there.

Added 3D-wrapper for game::mon_at, game::npc_at and game::critter_at
Added some actions to shift the view vertically

Added "Experimental-Z-Level" to the default mods because it makes sense now.
Made some drawing relateved function use tripoints

Made map::drawsq, map::draw and game::draw_critter expect a tripoint as
center.

Also make all parameters to map::drawsq mandatory.
Ranged targeting uses the 3D-point already but that won't be visible as there is no key binding to change the z-level there.
Made game::draw_ter use a 3D-point

Add a separate function with no parameters instead of using magic default values.
Add game::ter_view_z to match the other two ter_view_* members.
Make json handle point and tripoint directly.

Instead of implementing the serializer/deserialzer interface, support
direct input/output of point/tripoint objects. This is similar to plain
old data types and std::string.

Made constructor of tripoint explicit to avoid some bug.