enhance tabixReader: iterator moved to an interface

enhanced **htsjdk/tribble/readers/TabixReader.java**

* moved TabixReader.Iterator to an interface.
* a default TabixReader.Iterator **EOF_ITERATOR** (static final) is now returned, instead of null, when a chromosome/region is not found.
* in `query`, check that 'tid' is not <0 (would throw indexOfOfBoundException )
* added a method to query by interval (instead of concatenating chrom+":"+start+"-"+end ) 
* internal classes are static
* hide some fields/method with private (e.g: readIndex )
* commented out unused fields
* added method `getSource()` to retrieve the filename/url
* added some Tests to verify the iterators.