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
This could be a point of reference thing, what I mean is if the tolerance is set at 0.15, and all the errors are 0.05.