refactor channel mangling in config parser

the function `_add_new_channel` was too opaque and created things under the hood
the function `_get_new_node` was mutable
now it should be clear what's going on just from looking into the `parse()` flow
fix nodes with only networked channels

the nodes that had only network channels attached would not show in final config
it lead to various strange errors, like `zvm://` urls not being resolvable
fix things broken by upstream commit

upstream commit 873c52e608d46e4c34035a8dd3476e604fe2248e breaks earlier integration code