go.net/webdav: new Handler, FileSystem, LockSystem and lockInfo types.

LGTM=dave
R=nmvc, dave
CC=bradfitz, dr.volker.dobler, golang-codereviews
https://golang.org/cl/169240043
diff --git a/webdav/file.go b/webdav/file.go
new file mode 100644
index 0000000..a2953ae
--- /dev/null
+++ b/webdav/file.go
@@ -0,0 +1,28 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package webdav
+
+import (
+	"io"
+	"net/http"
+	"os"
+)
+
+// TODO: comment that paths are always "/"-separated, even for Windows servers.
+
+type FileSystem interface {
+	Mkdir(path string, perm os.FileMode) error
+	OpenFile(path string, flag int, perm os.FileMode) (File, error)
+	RemoveAll(path string) error
+	Stat(path string) (os.FileInfo, error)
+}
+
+type File interface {
+	http.File
+	io.Writer
+}
+
+// TODO: a MemFS implementation.
+// TODO: a RealFS implementation, backed by the real, OS-provided file system.