subnet inheritance inconsistencies
There are some inconsistencies (nothing critical so not a bug but lost opportunities to simplify code and improve performance) in the way subnets are handles for at least relay, interface name and v6 interface id:
- relay is a direct field of Network, is derived in syntax parsing and checked for both subnet and parent shared network for subnet selection.
- interface name (getIface) is inherited using getProperty, checked in sharedNetworksSanityChecks after syntax parsing and checked for both subnet and parent shared network for subnet selection.
- interface id (v6 option) is inherited using getProperty and subject of #652.
- get rid of the syntax derivation when possible (in particular when the other inheritance mechanism applies)
- avoid spurious inheritance in CB cmds (aka #652)
- apply a subset of sharedNetworksSanityChecks in merging
- at the opposite use inheritance to make only subnet level checks in subnet selection (note this means a subnet should be attached to its parent shared network before being added to the global subnet container)