Feature/runner checkpointing

Adds a Runner.pm option +blcr, which enables LSF/BLCR checkpoint/restart support.  Jobs will be submitted using `bsub ... cr_run` and will be killed and restarted (using `bsub ... cr_restart`) when they reach the queue run limit (instead of using bswitch). 

Adds some (truly optional) farm options that can be useful in the context of checkpoint/restart:
 - runtime_limit_seconds (asks Runner.pm to enforce this time limit regardless of what the queue limits are - defaults to the appropriate queue limit)
 - chkpnts_per_run (will calculate the checkpoint period based on the runtime limit, defaults to 1)
 - chkpnt_period_minutes (override the automatic period which is specified by chkpnts_per_run by explicitly setting the period)

Makes some strictly unnecessary changes to the code to improve readability (e.g. using explicit regex capture groups in place of $', labelling loop control statements, etc). 

Adds required GRL copyright/license statements to the modified files (Runner.pm and RunnerLSF.pm). 

Also adds some basic facility to change the CPUs required when resubmitting previously checkpointed jobs (e.g. by setting `bsub -nN` based on the idle factor of the previous run).  This functionality is not as well tested as the core checkpoint/restart functionality.