Added fake segments for endless worlds.

If there's terrain defined, we'll use "fake" segments to make it appear
endless.
These fake segments are used whenever terrain for which there's no
server side terrain defined is shown.
Allow toggling of "endless" world.
Set default height to -12.

This will make any fake segment be under water, enough to be completely
black (with the default terrain shaders).
Refactor how Segments are handled.

Provision and invalidation of the mercator segment is now handled by
function objects. This allows us to easily handle "fake" segments.
The SegmentReference class has also been removed in favour of shared_ptr
with custom deletor.