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 how do you get this result for the expected ww? We normalise the weights to half the highest value flux value, so flux_data/2*max(flux_data) so 1.2/6.6 and so on, so all the values are correct except the last one, expected_ww[3] should be 1.7/(2*3.3) =  0.257575758 not 0.001. How can your test pass?