MAGIC variance reduction

I added the MAGIC variance reduction technique to variancereduction.py. @makeclean, you should review the method. Tests were also added.

Theory manual addition still needed.

issue #344
Basically we want to generate WW through as much of phase space as possible. Even if the estimate of the flux is off by a factor of 5 or 10, using these fluxes to generate WW will probably be better than analog. For that reason, it makes sense to make the tolerance fairly high.

MAGIC can be used as an iterative method, and one can image schemes where the tolerance changes between iterations.