Add some fancy-pants directory handling so that index.html works as expected.

This still needs some test coverage, but the general idea is that it allows `index.html` files to be served correctly via statik.

The built-in HTTP server redirects URLs ending in `.../index.html` to `.../`, which causes failures since directory entries don't exist in the map. This works around the problem by checking for matches with `/index.html` appended when the file lookup fails initially and implements a simple `IsDir()` to fake out the internal logic.
We should better check if name has a slash suffix before directly following back to the index.html in each case. Open should begin with the following check.
``` go
if strings.HasSuffix(name, "/") {
   // return some http.File whose IsDir returns true.
}
```