Convert from using SCOOP to multiprocessing.

This won't work across clusters, but avoids having
to pass the database every time.

Storing the pool of workers in the CoreEdgeReactionModel
instance means CoreEdgeReactionModel can't be pickled (for Restart) so we
store the pool as a module level variable, called __pool
Merge branch 'master' into multiprocessing