HTTP file-serving cleanup

* Combined private http::serve_dir() and http::serve_file() functions into a
  single http::serve_file() function, now public.
* Added API documentation for the http::file_server class.