Shadow mapping and improved render graph search

Fully implemented the shadow mapping. Also refactored the retrieval of
lights to avoid re-searching sub-trees. Also moved non-virtual function
implementations to headers for inlining. In addition, fixed issue with
view rotating around a point in front of the near draw plane.

Unfortunately, there appears to be a new problem with specularity. It
may be caused by the shadow shading, but it does not seem that way from
the code.