[syscall/zx] move error to *zx.Error

This is the fifth and final step in transitioning the error
implementation on Error from the value type to the pointer. It is safer
to implement interfaces on pointer types for the reason evident in this
chnage; an interface implemented by a value type is also implicitly
implemented by that value's pointer type, which requires type assertions
to try both cases. On the other hand, interface implementations by the
pointer type do not imply an implementation by the type's value type.

Change-Id: I483a599c0acf894a19ddbfd8550955105e285e0d
diff --git a/src/syscall/zx/handle.go b/src/syscall/zx/handle.go
index 040f6e0..5e77328 100644
--- a/src/syscall/zx/handle.go
+++ b/src/syscall/zx/handle.go
@@ -588,7 +588,9 @@
 	Text   string
 }
 
-func (e Error) Error() string {
+var _ error = (*Error)(nil)
+
+func (e *Error) Error() string {
 	if e.Text == "" {
 		return "zx.Status: " + e.Status.String()
 	}