Fix escaping issues when dir contains '%' or other special characters.

Bug reproducing:
If D:\test contains two sub directories like this:
```
D:\test\curimit@gmail.com\
D:\test\20%/
```

Issue 1:
When `showdir.js` runs, the function call `encodeURIComponent` on `line 123` will escape the charactor `@` into `%40`. 
However when `ecstatic.js` runs, the function call `decodeURI` on `line 41` won't decode `%40` back into the charactor `@`.
Same reason to the `decodeURI` on `line 21` in `showdir.js`.

Issue 2:
When `ecstatic.js` trying to add "/index.html" to the urls, we should encode the pathname again to avoid double decoding.
Because `line 42` in `ecstatic.js` has already decoded the pathname. If we send this variable directly to `showdir.js`, it will be decoded again on `line 21` in `showdir.js`.