Change verror WireToNative behavior.

The old vdl/vom logic had a special-case when decoding into
interface{}; if we found a type that wasn't registered, we'd fall
back to creating a *vdl.Value.

The new logic returns an error in this case instead.  That
changes how verror.WireToNative behaves; using the old logic, any
types that weren't registered would result in *vdl.Value, which
the java side handles correctly.  The new logic would embed an
error into the verror params, which causes Java to behave
erratically.

Instead of embedding the error, we fall back to the same
special-case, where we just set the param to *vdl.Value instead.
This seems better since it provides more data to the user.

Change-Id: I706f75ce4d817ada7bed71c62fbf76bc3e3eccbb
diff --git a/verror/init.go b/verror/init.go
index c5369ea..3adf12c 100644
--- a/verror/init.go
+++ b/verror/init.go
@@ -69,19 +69,18 @@
 		Action: retryToAction(wire.RetryCode),
 		Msg:    wire.Msg,
 	}
-	for _, p := range wire.ParamList {
+	for _, pWire := range wire.ParamList {
 		var pNative interface{}
-		if err := vdl.Convert(&pNative, p); err != nil {
-			// It's questionable what to do if the conversion fails, or similarly if
-			// the conversion ends up with a *vdl.Value, rather than a native Go
-			// value.
+		if err := vdl.Convert(&pNative, pWire); err != nil {
+			// It's questionable what to do if the conversion fails, rather than
+			// ending up with a native Go value.
 			//
-			// At the moment, for both cases we plug the *vdl.Value or conversion
-			// error into the native params.  The idea is that this will still be more
-			// useful to the user, since they'll still have the error Id and Action.
+			// At the moment, we plug the *vdl.Value into the native params.  The idea
+			// is that this will still be more useful to the user, since they'll still
+			// have the error Id and Action.
 			//
 			// TODO(toddw): Consider whether there is a better strategy.
-			pNative = err
+			pNative = pWire
 		}
 		native.ParamList = append(native.ParamList, pNative)
 	}
@@ -100,9 +99,9 @@
 		RetryCode: retryFromAction(Action(e)),
 		Msg:       e.Error(),
 	}
-	for _, p := range params(e) {
+	for _, pNative := range params(e) {
 		var pWire *vdl.Value
-		if err := vdl.Convert(&pWire, p); err != nil {
+		if err := vdl.Convert(&pWire, pNative); err != nil {
 			// It's questionable what to do here if the conversion fails, similarly to
 			// the conversion failure above in WireToNative.
 			//