netlink: return link/addr/route's name only when available

When we try to get information about a removed device without a
corresponding cache, _get_link() will end up with ENODEV exception.

This case may happen, for example, when we catch DELLINK event-object
(which includes related link's id) and then try to get info about a
related link that has also been deleted.

Now _link/route/addr_functions() always return indexes and if it is
possible, label too. ENODEV error raised by _link_index_to_name
(in case of not available device) is ignored.

This patch is needed by following 'netlink: event monitor'[1] patch. In
case, when we catch NEWLINK event, everything works great and we are
able to return related device's name. However, when we catch DELLINK
event, we are not able to get name of related link (which has been
already deleted), so we at least return its ID from event object. (If we
have old links stored somewhere, we could use ID to map them. It could
be handy, when we use EventMonitor in interpreter for some debugging
too.)

[1] I23ea72986564c5a115e36be0e7cf679c28c8ea96

Change-Id: I41dfc7178144ae35a6b5bb52c185a337c94138ba
Signed-off-by: Petr Horáček <phoracek@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/34925
Reviewed-by: Dan Kenigsberg <danken@redhat.com>