added diffuse and ambient lighting models. Also, diffuse is defined by source position and direction. Did some code updates like adding rules of 3 where needed. Removed some smart pointers.