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 I guess I am a little confused by this. Are there not only two types of tag_names that come out of a mcnp meshtally? Example: n_result and n_total_result (and their error tags). If there are multiple e_bounds, the n_result tag will still be a single tag_name "n_result" with multiple energy group data contained within it. I don't really understand your comment "if tag_name is a tag of length 1." I think this also goes to your next comment, @elliottbiondo about the size not being 1.