range error fixes

I was just playing around with the range header and found some problems:

```
$ ecstatic . -p 9000
ecstatic serving . at http://0.0.0.0:9000

fs.js:1488
      throw new Error('start must be <= end');
            ^
Error: start must be <= end
    at new ReadStream (fs.js:1488:13)
    at Object.fs.createReadStream (fs.js:1449:10)
    at serve (/home/substack/projects/node-ecstatic/lib/ecstatic.js:185:26)
    at /home/substack/projects/node-ecstatic/lib/ecstatic.js:138:11
    at Object.oncomplete (fs.js:107:15)
```

when I did:

```
$ curl -siH 'range: 200-103' http://localhost:9000/README.md
```

These patches fix some assorted error cases in the range index handling.