add build directory detection
replace std::list with std::vector
optimize some data structures, intersection tests and shaders
extend README