Fixes #6444 - add support for virtual NICs

I'd rather have it like this
```
parent - bond0 (sti type: bond)
   -> child - eth0 (sti type: interface)
   -> child - eth1 (sti type: interface)

parent eth0 (sti type: interface)
   -> child - eth0.0 (sti type: virtual)
```

So having virtual as a new subtype and being a child. I know that we're misusing one relation for two different meanings but it seems natural to me that child is dependent on parent, therefore I'd prefer virtual as a child. By same logic bond should be children of both interfaces but ancestry supports only tree structure... Btw, can we create bonds of bonds/virtuals/bridges etc?