xerrors: make As match on assignability

Change As to consider assignability rather than type equivalence, allowing
it to convert an error to an interface type. e.g.,

	var to interface{ Timeout() bool }
	if errors.As(err, &to) && to.Timeout() { ... }j

Change-Id: Ia3ecaefb6c27f878f81f1d467b07b69fee9db976
Reviewed-on: https://go-review.googlesource.com/c/161017
Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
2 files changed