This is a pretty major re-write of the GlideinHandler class for log rotation

We now inherit directly from BaseRotatingHandler rather than TimedRotatingFileHandler since we are overriding all of the functions specified in the TimedRotatingFileHandler anyway.

__init__ function:
* The rolloverAt timestamp is calculated according to the python2.7 bug fix rules now:
        if os.path.exists(filename):
            begin_interval_time = os.stat(filename)[stat.ST_CTIME]
        else:
            begin_interval_time = int(time.time())
        self.rolloverAt = begin_interval_time + self.interval

shouldRollover function:
We now check for the CTIME of the log file when determining the age of the log file.  This simplifies the minimum lifetime check.

getFilesToDelete function:
This is a direct copy from the python 2.7 module.  It removes some hard-coded assumptions about the file naming structure.

doRollover function:
This is a modified version of the function from the python 2.7 module.  Based on feedback from the UCSD admins, the timestamp expected in the file name is NOT the begining of the interval (which the logging module assumes), but the time at which the log file was rotated.  A bunch of unused functionality was removed in favor of readablility.

_open_new_log function:
This is a new helper function that bridges the gap between the differences in the way that the python 2.4 and python 2.7 modules opened new log files.
fixed issues encountered during unittesting
added unittests for logging
added a pylint directive to ignore a harmless warning and changed code to avoid a pylint false positive
Merge branch 'master_4371'