Have example sftp servers handle session EOF

As the EOF is expected when the client quits the session, have the
example servers handle it more gracefully so it is less confusing.

Fixes #169
diff --git a/examples/request-server/main.go b/examples/request-server/main.go
index a829824..11b8c44 100644
--- a/examples/request-server/main.go
+++ b/examples/request-server/main.go
@@ -6,6 +6,7 @@
 import (
 	"flag"
 	"fmt"
+	"io"
 	"io/ioutil"
 	"log"
 	"net"
@@ -120,7 +121,10 @@
 
 		root := sftp.InMemHandler()
 		server := sftp.NewRequestServer(channel, root)
-		if err := server.Serve(); err != nil {
+		if err := server.Serve(); err == io.EOF {
+			server.Close()
+			log.Print("sftp client exited session.")
+		} else if err != nil {
 			log.Fatal("sftp server completed with error:", err)
 		}
 	}
diff --git a/examples/sftp-server/main.go b/examples/sftp-server/main.go
index acc4d90..48e0e86 100644
--- a/examples/sftp-server/main.go
+++ b/examples/sftp-server/main.go
@@ -6,6 +6,7 @@
 import (
 	"flag"
 	"fmt"
+	"io"
 	"io/ioutil"
 	"log"
 	"net"
@@ -136,7 +137,10 @@
 		if err != nil {
 			log.Fatal(err)
 		}
-		if err := server.Serve(); err != nil {
+		if err := server.Serve(); err == io.EOF {
+			server.Close()
+			log.Print("sftp client exited session.")
+		} else if err != nil {
 			log.Fatal("sftp server completed with error:", err)
 		}
 	}