Protect against missing MonitorElements

Check for nullptr before trying to access any functions of a
MonitorElement requested from the DQMStore. This avoids a crash
seen in the threaded IB RelVals. [The origin of the missing
MonitorElement is fixed in pull request #4950]
Fixed multiple errors in PhotonValidator

-the 'endRun' method had the wrong signature and was not called by
the framework. Added 'override' to all virtual functions to catch
the problem in the future.
-fixed memory leak with PhotonMCTruthFinder
-fixed illegal casting away const of the EventSetup data product
 TrackAssociatorBase. The cast wasn't needed anyway since all methods
 are const.
-no longer hold onto the DQMStore since only needed in one call. The
removal did require re-indenting nearly all of bookHistograms.
Merge pull request #4951 from Dr15Jones/fixBugsInValidationRecoEgamma

Fix bugs in Validation/RecoEgamma