Optimize CPUTimer so we can check the walltime without reading out
the CPU time.
Introduce the concept of "graceful runtime".  After a fixed amount
of walltime, the input source sends a stop signal on lumi transitions.

This allows us to set an expiration time, after which, the framework exits
successfully after the current lumi is finished.  We plan to experiment
with having the workflow management system keeping the current job
outputs and create a new job consisting solely of the unprocessed
lumis as a means of "chopping off the tail" and giving us more
deterministic runtime.
Fixes from review comments.  Biggest change is that we use C++11
standard library for timer-related functions.
As suggested, rename maxGracefulRuntime to maxSecondsUntilRampdown.
Fix build issues for callsites that create InputSources directly.
Another missed constructor found thanks to checkdeps.
Improve plots, duplicate plots for GEN quantities
Add python file to physically produce png plots out of the final ROOT file
Improve ranges of couple of histograms
Fix more english typos
Make destination folder configurable to ease the usage @HLT
Merge pull request #4742 from bbockelm/graceful_runtime

"Graceful runtime" for managing job runtime when lumi splitting
Merge pull request #4850 from rovere/improve_VertexValidationPlots

Improve vertex validation plots
Merge remote branch 'origin/CMSSW_7_2_X' into CMSSW_7_0_X