Implement beers attenuation

RefractionMaterial now requires a 'attenuation' field that is used for
beers attenuation. This is the color that is gathered as light travels
through the material. By default this is set to 1 and should behave as
if beers attenuation didn't exist.