serf: Add serf_find_inventory().

Refactor handle_serf_free_walking_state_dest_reached().
Fix #86: When in LOST state serfs should also consider an active inventory as a valid destination.
Fix #90: Use game_road_segment_valid() in interface to determine the sprites when building road.
Fix: Set the max number of resources waiting at a flag using FLAG_MAX_RES_COUNT.

Fixes various off-by-one bugs.
game: Refactor resource scheduling in update_flags().

Split resource scheduling into schedule_slot_unknown_dest() and schedule_slot_known_dest().
Fix #89: Eventually return resources to inventory even if no path exists when produced.
Fix: Fail automatic road construction if one of the flags are missing.

This fix alleviates crashes when the pathfinder does not produce a valid path.
interface: Add interface_open_message() and interface_return_from_message() for opening next message in queue and returning.

The code is moved from the panel into interface and cleaned up a bit.
The code for drawing the panel has been cleaned a bit as well removing some useless bits.
Fix #87: Add TAB and SHIFT-TAB as keyboard shortcuts for notification messages.
map: Add callback for map height changes.
Fix #83: Draw landscape as tiles.

Currently each tile spans 16 map cols and 16 rows. Each tile is prerendered when marked dirty, so the landscape doesn't have to be completely drawn on every frame.
The tiling makes it possible to create larger maps because the offscreen rendering of the landscape was limited by the max surface size.
In addition, it is now possible to mark dirty a single map position which in turn will mark the corresponding landscape tile dirty. As a result usually only one tile (or at most four in rare cases) will have to be redrawn when the map height changes.
popup: Move box field from interface.
minimap: Move option fields from interface.
player: Store player color in player object
Add notification GUI component.

Move notification message boxes from popup to notification.
This change means that notifications can be seen without clearing the current popup window.
Fix #66: Close popup box when target is no longer valid
Fix #94: Allow construction of building even if the flag exists already.
savegame: Save/load player color
map: Refactor map data.

Remove unecessary fields (has_flag, water, deep_water). These can be derived from tile types and object.
Bitfield for idle_serf is moved.
This should also fix the strange boat sprites caused by issue #60.
Serfs now check if a position can be passed using serf_can_pass_map_pos().
interface: Do not disable panel buttons when opening a notification