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.

Factor out index offset calculations

chunked test passes

Cleanup & fix

More cleanup
Only fetch BAM if BAI request succeeds

test case for failing BAI

whoops
Merge pull request #121 from danvk/index-chunks

Add "indexChunks" option to BAM sources