Issue title: net/webdav
 Issue body: <!-- Please answer these questions before submitting your issue. Thanks! -->

### What version of Go are you using (`go version`)?

<pre>
go version go1.11 darwin/amd64
</pre>

### Does this issue reproduce with the latest release?

Yes


### What operating system and processor architecture are you using (`go env`)?

<details><summary><code>go env</code> Output</summary><br><pre>
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/mickael/Library/Caches/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/mickael/Documents/projects/go/"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/Cellar/go/1.11/libexec"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.11/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/7w/08pnvwm554xc18_b012cbgs00000gn/T/go-build184274398=/tmp/go-build -gno-record-gcc-switches -fno-common"

</pre></details>

### What did you do?

<!--
If possible, provide a recipe for reproducing the error.
A complete runnable program is good.
A link on play.golang.org is best.
-->

I've created a webdav server based on https://godoc.org/golang.org/x/net/webdav then started querying it:
```
echo '<?xml version="1.0"?><a:propfind xmlns:a="DAV:"><a:prop><a:resourcetype/></a:prop></a:propfind>' | curl -X PROPFIND http://116.69.203.115:8334/s/SrRunIQ/ -H "Depth: 1" --upload-file - | xmllint --format -
```

### What did you expect to see?

Like other webdav servers I made some test with, I expected the href attribute to end with a "/" for directories

### What did you see instead?

The href attribute never end with a "/"
```
<?xml version="1.0" encoding="UTF-8"?>
<D:multistatus xmlns:D="DAV:">
   .....
  <D:response>
    <D:href>/s/SrRunIQ/paper</D:href> <- is a folder but doesn't end with a "/"
    <D:propstat>
      <D:prop>
        <D:resourcetype>
          <D:collection xmlns:D="DAV:"/>
        </D:resourcetype>
      </D:prop>
      <D:status>HTTP/1.1 200 OK</D:status>
    </D:propstat>
  </D:response>
  ....
</D:multistatus>
```

I made a [quick fix](https://github.com/mickael-kerjean/net/commit/0cae909806d12857de6cf6486fb494aae80039b5) as this piece of code is a big deal in the context of where I'm using the webdav server for.
 Comments: 
 Comment 0: CC @bradfitz @nigeltao 
 Comment 1: Does the spec say anything about this?

 Comment 2: In [RFC 4918](https://tools.ietf.org/html/rfc4918#section-8.3): 

> The rules in this section apply ... to resource URLs in the 'href' ...... Identifiers for collections SHOULD end in a '/' character.
 Comment 3: I made some test with both:
<details><summary> Apache webdav:</summary>

```
docker run -ti --name webdav -p 8888:80 ubuntu:latest bash
apt update
apt install curl apache2 vim libxml2-utils
mkdir /var/www/webdav
chown -R www-data:www-data /var/www/
a2enmod dav
a2enmod dav_fs
vi /etc/apache2/sites-available/000-default.conf
# https://www.digitalocean.com/community/tutorials/how-to-configure-webdav-access-with-apache-on-ubuntu-14-04
service apache2 restart

touch /var/www/webdav/test.html
mkdir /var/www/webdav/test
echo '<?xml version="1.0"?><a:propfind xmlns:a="DAV:"><a:prop><a:resourcetype/></a:prop></a:propfind>' | curl -X PROPFIND http://116.69.203.115/webdav/ --upload-file - -H "Depth: 1" | xmllint --format -
```

</details>

<details><summary> Sabre dav via Nextcloud:</summary>

Creating an account on their [demo](https://demo.nextcloud.com/)

</details>

Both requests via curl
```
echo '<?xml version="1.0"?><a:propfind xmlns:a="DAV:"><a:prop><a:resourcetype/></a:prop></a:propfind>' | curl -X PROPFIND http://116.69.203.115/webdav/ --upload-file - -H "Depth: 1" | xmllint --format -
```
would yield a "/" at the end of the HREF for directories
 Comment 4: CC @rsto
 Comment 5: The patch LGTM. 

Just curious: is the trailing `/` for collections expected by a particular DAV client or library?
 Comment 6: No idea, personally, I wanted to use this as an optimisation [in this project](https://github.com/mickael-kerjean/nuage) to reduce the network round trip as my data isn't store locally but on some remote backends: S3, FTP, SFTP, ...
 Comment 7: Also, let me know if I'm wrong but the current implementation of the webdav server seems to assume that opening a file and performing a stat is a cheap operation. In my scenario trying to make a webdav server of an S3 bucket, such an assumption is not true and is large of a consequence when the webdav server is mounted on the OS. To fix this, I made some [additional changes](https://github.com/mickael-kerjean/net/commit/2191869b98ef303ca675556d38410e555713fc15#diff-6849749932e9b0cdd367464fc9729440L16) in the webdav implementation to avoid unecessary file opening, stats and close in the request lifecycle. Any chance that could be merge as well?
 Comment 8: I only skimmed them briefly, but I think both changes are broadly acceptable (as two separate changes).

The contribution guidelines are at
https://golang.org/doc/contribute.html

If you haven't submitted a Go patch before, note that we will need https://golang.org/doc/contribute.html#cla

If you're familiar with GitHub's flow, you might want to follow https://golang.org/doc/contribute.html#sending_a_change_github which is a relatively new process.
 Comment 9: Change https://golang.org/cl/163863 mentions this issue: `webdav: add trailing slash on directories`
{'source': 'GithubIssues', 'repo_name_with_owner': 'golang/go', 'issue_id': 401559975, 'repo_stars': 113207.0}