Soft shading and Dispersion

Soft shading by dividing lights further and calculating shadows to each
of them.
Dispersion by making seperate raytracers for R,G,B and giving different
refractive indices.