fixed Material::Absorb to not mistake mass comps for atom comps

And wrote a test to prevent it happening again.  This is a small fix, with a big affect on simulation correctness :/