join byid and kern maps instead of picking one (bnc #896665)

If a device doesn't have a by-id link (e.g. vda) it used to be dropped in
GetDeviceMap() as long as there are other devices with by-id links. That's
rather bad. Instead we now use by-id and kernel names so we always have an
entry in device_map.