[golang] Wrong type for root when having file with multiple subtypes but no main type
Let's say we have the following:
**test.ksy**
```ksy
meta:
  id: test
  endian: le
  imports:
    - common_types

seq:
  - id: test_field
    type: common_types::decimal64
```

And another file, `common_types.ksy`, that simply contains multiple:
```ksy
meta:
  id: common_types
  endian: le

types:
  decimal32:
    seq:
      - id: mantissa
        type: s4
      - id: exponent
        type: s1

  decimal64:
    seq:
      - id: mantissa
        type: s8
      - id: exponent
        type: s1
```

If this gets compiled, the golang code will end up like this:
**test.go**
```go
[...]
func (this *Test) Read(io *kaitai.Stream, parent interface{}, root *Test) (err error) {
	this._io = io
	this._parent = parent
	this._root = root

	tmp1 := NewCommonTypesCme_Decimal64()
	err = tmp1.Read(this._io, this, this._root)
	if err != nil {
		return err
	}
	this.TestField = tmp1
	return err
}
```

**common_types.go**
```go
[...]
func (this *CommonTypesCme_Decimal64) Read(io *kaitai.Stream, parent *Test, root *CommonTypesCme) (err error) 
[...]
```

This results in errors, because:
```
cannot use this._root (variable of type *Test) as *CommonTypesCme value in argument to tmp1.Read
```

The `Read` method of `CommonTypesCme_Decimal64` expects a root of type `CommonTypes`, but there is no such type! We only use the `common_type.ksy` file to have a collection of types that can be reused in the project. 

Is there a trick to make this work? I think that we should pass `nil` instead of `this._root`.

Relevant issues:
- https://github.com/kaitai-io/kaitai_struct/issues/850
- https://github.com/kaitai-io/kaitai_struct/issues/1032