Avoid YAML serialization inside `Deployer.discover_node_configuration`.
Add an API for discovering used ports to `INetwork`.
Implement ``INetwork.enumerate_used_ports`` on ``HostNetwork``.
Add a docstring for that implementation.
Add a test for ``HostNetwork`` noticing ports bound in the usual way - by a server or a client.
Add `used_ports` to `NodeState` and have `Deployer.discover_node_configuration` populate it.
merge master
Move `NodeState` into the model module.
Include used ports information in the output of `marshal_configuration`.
docstring
merge master
Try declaring the psutil dependency.
Try to skip if iptables-save is not available.
Lint fixes.
Another lint.
Add missing test for useful values showing up in used_ports in the result of `marshal_configuration`.
Remove redundant bind.

The socket will be bound to an address when it starts listening (it is the law).
Add a test for a listening port bound to a specific interface.
Merge pull request #816 from ClusterHQ/reportstate-used-ports-738

Reportstate used ports 738