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
> so how about we add a switch as an option

In terms of bells and whistles, I think I would like to have an iterative option first (e.g. a preexisting WW mesh is supplied and modified based on a new flux mesh), especially since it not uncommon to want to use MAGIC with only 1 group.

I think the current functionality is fine for the purposes of this PR, but I agree that more features could/should be added in the future based on necessity.