Supports Range Request

replacing streamOpt.start and streamOpt.end with range value.

* requests correct range, return 206 (e.g. bytes=0-1)
* requests invalid range, return 416 (e.g. bytes=10-0)
* requests over range, return 206 with bytes=0-`stat.size - 1`