Change the DBusError interface

Since The DBusError interface requires one to return a concrete type
from the D-Bus library, that library must be imported by every thing
that returns one of these errors. It would be friendlier to support
returning base types so that the implementations need not import the
godbus library.

This is not compatible, but the interface is still fairly new.
diff --git a/conn.go b/conn.go
index 96f6087..5d5e8c7 100644
--- a/conn.go
+++ b/conn.go
@@ -512,7 +512,8 @@
 	case *Error:
 		e = em
 	case DBusError:
-		e = em.DBusError()
+		name, body := em.DBusError()
+		e = NewError(name, body)
 	default:
 		e = MakeFailedError(err)
 	}
diff --git a/server_interfaces.go b/server_interfaces.go
index ff36b99..091948a 100644
--- a/server_interfaces.go
+++ b/server_interfaces.go
@@ -85,5 +85,5 @@
 // "org.freedesktop.DBus.Error.Failed" error. By implementing this
 // interface as well a custom encoding may be provided.
 type DBusError interface {
-	DBusError() *Error
+	DBusError() (string, []interface{})
 }