Migrate Generators to New Random Service Interface

Migrate generators to use the new interface of the
random number generator service designed to work
with the multithreaded Framework. The main interface
change is to require a StreamID or LuminosityBlockIndex
argument to the getEngine function. In most cases,
this required moving code from the constructor to
the event or beginLuminosityBlock method. Then a pointer
to the engine was percolated or passed in some way
to the point where it was used.

In some cases, I added declarations of shared resources
where it was obvious they were needed, but I did not
thoroughly check for and declare all shared resources
that will eventually be needed.

Note that this was done in two parts. The first pull
request was already merged into 7_0_X some time ago.
It took care of Pythia 8 and ExternalDecays. The
rest of the generators are taken care of in this pull
request.

Note that the content of this pull request is almost
identical to pull requests 1982 and 2150. Pull request
1982 was signed by all L2's. The only differences are
related to resolving conflicts that occurred when
unrelated development was merged in. It was also rebased
twice.
Add asserts to avoid null pointer derefeences
Merge pull request #2284 from wmtan/AddAssertsToMaybeAvoidSegfaults

Framework cleanup -- Add asserts to avoid null pointer dereferences
Merge pull request #2282 from wddgit/generatorRandomInterface3

Multithreading fixes -- Migrate Generators to New Random Service Interface