Compute dynamic read depth limits

This builds on #189 

Here were use the `windowFoldLoci` to sum up aggregate statistics on the read (average depth, average insert size)  Later I want to change these to be more complete distributions (so we can computer std dev, percentiles).  

There is a new command line option `-approx-depth-limits` which estimates the max and min read depths using the sample statistics.
Not sure what shadowing `i` means, but if the question is why bother with `i`:

```scala
scala> (0 to 25).map(i => "TCGA").mkString
res0: String = TCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATCGA

scala> (0 to 25).map("TCGA").mkString
java.lang.StringIndexOutOfBoundsException: String index out of range: 4
	at java.lang.String.charAt(String.java:658)
```