secchan: Fix behavior when a network device is renamed.
update_port() deals with the case where we have been notified that a
network device with a given name, that is part of the datapath, has changed
in some way. In particular it breaks the problem space up into ports that
have been added, deleted, or modified.
But the code here deals badly with the case where the only change is that
the network device associated with a port has been renamed (which is
reported to it with 'devname' as the network device's new named): it
looks up devname in the ofproto's index by name and doesn't find it, then
it looks up the port number assigned to the netdev in the ofproto's index
by datapath index and sees that there already is one. This makes it
think that it's a new port, but with a port number that conflicts with an
existing port (under the old name for the port), which makes it discard
the notification and keep the old netdev name, and so afterward nothing
on the netdev will work since it still has the old netdev name.
This rewrite fixes the problem and simplifies the code.