basics for procedure-based color retrieval from Shape

Extends Shape with a getColorAt() method to simplify color retrieval in
light.hh's illumination().

getColorAt() uses cached results from a method each kind of Shape must
override in order to implement either texture projection on this particular
shape or texture retrieval from components of this shape.

Projection on Triangle and Plane is provided here. Missing projection on
Sphere and retrieval from Obj, coming soon.
(minor) improving code clarity in headers