Added a "local vector" class, encapsulating a location and the normal vector at this location on a surface. The surface object are requested to provide an instance of this class given a 2D location (x, y)
Added a class defining a single ray, with its current location, direction and intensity
Added a "diffuser" interface, defining object generating ray from an input ray. The first implementation is the "ImageDiffuser", to generate initial rays at each point of an object (the actual diffusion processing is NOT yet implemented)
Refactored Main.cpp to make each template type parameter more explicit. One for the type to be used to express coordinates (now "double"), and one for the intensity (now scalar "double")