Dev/support for structs of structs

fix problem with encoding structs like:

```go
	type T1 struct {
		ID    uint64
	}
	type T2 uint64
	type Struct struct {
		V1 T1
		V2 T2
	}
```

the current encoding would pass `V1` by value, causing downstream code to drop it on the floor.