don't forget liquid updates for unloaded blocks (fixes #424)

Previously, when a liquid flowed into an unloaded block, or when the
map was restarted, the server forgot the coordinates of the nodes to
update.

To fix this, we now save the nodes with scheduled liquid updates in
the MapBlock, instead of the Map, and a list of block with scheduled
liquid update nodes is maintained in Map.

Serialization format is incremented to 26 due to the added lists of
nodes saved for a MapBlock.

When a MapBlock is loaded and has scheduled liquid updates, it adds
itself to the map's list. When a map tries to update the nodes of
block which is unloaded, it can safely forget the block.

A MapBlock now stores 2 kinds of liquid update nodes: scheduled, and
pending. the scheduled nodes are updated in the next
Map::transformLiquid() run. The pending nodes are scheduled whenever
this block or one if its neighbors gets loaded. In transformLiquid(),
a scheduled node is only updated if all of its neighbor nodes are
known, i.e., their block is loaded. If one of the neighbor nodes is in
an unloaded block, the node is moved from scheduled to pending., so it
can be updated later, when the neighboring block gets loaded.