Provide close methods to clean up resources used while creating AlignmentContexts via the API

I'm using GATK as a library from Clojure to grab pileups within genome regions and process on them. For long running analyses, I ran out of file handles due to non-closed resources from `BAMSchedule` and `SAMDataSource`. This pull request creates close methods which can be used through the API to effectively close this resources when finished, avoiding holding on to file handles.

If you're interest in the usage context, the underlying code is here:

https://github.com/chapmanb/bcbio.coverage/blob/master/src/bcbio/coverage/io/bam.clj

Thanks much.