1st part of removing global variable world.
Removed extern struct volume *world from viz_output.
emoved extern struct volume *world from grid_util.
Removed extern struct volume *world from wall_util
 Removed extern struct volume *world from rng.c
Removed extern struct volume *world from mem_util.c
Removed extern struct volume *world from util.c
 Removed extern struct volume *world from sym_table.c
Removed extern struct volume *world react_outc.c and

react_trig.c.
Removed remainder of global references to world.
Added a small fix for checkpointing code.
Added additional fix for signal based checkpointing.
Removed all use of global struct volume *world

Previously, MCell relied on a single global struct volume *world
to share state between different parts of the code. Having such global
state is problematic as we move toward libmcell. Therefore, the
current commit completely removes this global state. Functions,
that require access to world (or parts of it) now either receive

1) struct *world passed as first parameter, or
2) the relevant data items from *world as parameters.

Clearly, 2) should be the preference for all internal functions not
intended to be exposed via an API. E.g., a function which needs
access to random numbers should receive world->rng as parameter
*not* the whole world.

As I removed the global state I tried to be as parsimonious as I
could in terms of the amount of state to pass into functions. However,
due to the large size of many MCell functions and the strong coupling
I often had no choice but to just pass the whole world. This is
something we should try to tighten up in the future as we refactor
the code better.

NOTE: This is a large commit which touches nearly every function in
MCell. The code passes all test but nevertheless some breakage may
be possible.