Use http.ServeContent to serve files

When I was checking out shelf, I noticed that it wasn't setting the content-length or content-type response headers so here's a pull request.