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
@kkiesling and I had a discussion about this. It pretty much comes down to whether the method should be biased in both space and energy. The way she implemented it, it is biased in space and analog in energy, which I think is the more useful method (consistent with the recently modified uniform sampling method in ```source_sampling```, and your uniform sampling at CCFE).