refactor the raytracer test and separate a vector library from it
add shadows to the raytracer