Add "indexChunks" option to BAM sources

This can dramatically speed up the initial load of Dalliance for large BAM tracks with correspondingly large BAI files.

For example, I have a 9MB BAI file. Loading this over the networks takes >20 seconds.
But if I specify indexChunks, I can just load a single chromosome on the first view, which only requires fetching ~600k of BAI.

This results in a massive speedup.

This does some mild refactoring to `bam.js` and also adds a few test cases. Testing your behavior in error conditions is super important!