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
@elliottbiondo I tried to simplify the if statements by adding tag_size instead of len(meshtally.e_bounds - 1) but I am not sure how to simplify it any further that what I have here now. This mostly comes down to the data structures either being a list of lists [[1 2] [3 4]] or a single list [1 2 3 4].