Don't fail if an Unmarshaler generates an intermediate error

When handling an `Unmarshaler`, the code slices any errors generated by the intermediate unmarshal call out of the parent `terrors` list. However, this results in the slice being non-nil, and so the root `Unmarshal` call will still fail with an empty error list, since it checks for non-nil, instead of nonzero length.