Static Website serving and listing

adds
 trailing slash redirection
 index.html return
 templated directory listing

Signed off : Simon Kirkby <tigger@interthingy.com>
And, what if this directory has a data segment? (is it precluded by the `uio.ErrIsDir`? not sure atm).

I understand this special case here is to handle how many web servers currently do things (default to index.html when accessing a trailing slash), but in reality this -- if included at all -- should be customizable (why prioritize html, for example? web2.0 has seen all sorts of index.*). 

One different way to do this would be to create a data segment for directories that specifies the functionality of providing a listing, or outputing the data segment of a child (i.e. index.html child). (We could even default unixfs directories to something like this so that `ipfs add` automatically does this).

This is one of those very tricky places where we have the chance to make the world a better place (choosing to swim upstream), or doing the easy thing and currently-more-compatible thing. 

In the end, a lot of this boils down to tools. If its seamless for users publishing websites for everything to work as expected, then they won't really care how it's done underneath the hood. (i.e. whether it's done at import or resolving time).