Allow indices from gathered intermediate BAMs to be deleted

This is another "clean up the directory" patch.  In the current codebase, BamGatherFunction is a PicardBamFunction that invokes MergeSamFiles directly.  The problem is that the bam index is not marked as an @Output, and so is not deleted if the gathered bam is intermediate.  This patch changes the inheritance to the MergeSamFiles extension instead, which provides the necessary @Output field.  I also found that the field had to be set explicitly; the default value for it in MergeSamFiles.freezeFieldValues was in the gather directory.

This patch does change the direct parent of BamGatherFunction from GatherFunction to MergeSamFiles.  I'm not totally certain of the implications of that - it may change the meaning of super.freezeFieldValues, though GatherFunction.freezeFieldValues doesn't override CommandLineFunction, so I think it's safe to change