Fix vdl.Read handling of nils and native types.

The old logic had the native type handling in the wrong place, so
we'd never handle our pointer tests correctly.  The handling for
native types that are filled in with nil is even more tricky, and
needs special handling.  These are used to handle errors.

After this CL, all the new convert tests pass with
-vdltest='!VWire', which means that we're not running native type
tests, but are running error tests.  The native types cause a
crash which I'll look into tomorrow.

The verror.Msg issue was quite annoying to track down.  I believe
it's caused by complexity in the verror struct itself; the Msg
field isn't always set.  Regardless, the fix in VDLEqual is
semantically sound.

Change-Id: I387ff09097038560a123f9a96091c61c5a018e2a
3 files changed