types: fix marshalling of omitted "interfaces" key in IPConfig JSON
Plugins that don't have knowledge of interfaces, like host-local or
other IPAM plugins, should not set the 'interfaces' key of their
returned "Result" JSON. This should then not be translated into
an interface index of 0, which it was due to the int marshaling and
omitempty.
Instead, ensure that an omitted 'interface' in JSON ends up being
nil in the IPConfig structure, and that a nil ensures that no 'interfaces'
key is present in the JSON.
Yes, this means that plugins must call the 'current.Int(x)' method
when setting the Interfaces member. Oh well.
Fixes: https://github.com/containernetworking/cni/issues/404