[fix] Issue #77 #84 #85 #86

### lib/ecstatic.js

url validation should be done in `ecstatic.js` (#85)
Fix redirect location (use `parsed.pathname` instead of urldecoded `pathname`) (#86)

### lib/ecstatic/showdir.js

Fix encoding of href genereated in `writeRow()`, no longer need `decodeURI()` (hence error check) here (#86)
Query string is appended to href (if applicable) (#85)
Use html5 doctype and utf-8 encoding (#84)
Use `<table>` to in `render()` (so we can add more columns later on)
Add '/' to dir entries (both link and display name)
Add some comments
Fixed some linter warnings

### test/core.js

Fixed test case for 'subdir_with space' (#86)
Added test case for non-ascii url (#86)

 On branch issue84-85-86
 Changes to be committed:
    modified:   lib/ecstatic.js
    modified:   lib/ecstatic/showdir.js
    modified:   test/core.js
    new file:   test/public/subdir_with space/file_with space.html
    new file:   "test/public/\344\270\255\346\226\207/\346\252\224\346\241\210.html"