glue.ligolw.utils.load_fileobj():  generalize gz param

- don't require it to be literally one of True or False if not None, but
  anything that is logically True or False.
glue.ligolw.utils.write_fileobj():  change utf8 encoder construction

- use codecs.getwriter() instead of codecs.EncodedFile() to construct
  the stream encoder in the belief that the former is certain to write
  directly to utf8 without introducing the intermediate internal formats
  threatened by the EncodedFile documentation.
glue.ligolw.utils:  require Python 2.5
glue.ligolw.utils:  implement context handlers

- allow RewindableInputFile and MD5File to be used as context handlers
glue.ligolw.utils:  rework write_fileobj()

- try *again* to ensure that all the streams upto and including the MD5File
  object, especially the GzipFile if used, gets .flush()ed and .close()ed
  in an attempt to correct the cause of the continuing saga of corrupt XML
  files when written by jobs running under Condor on LDG clusters.