device: avoid taking down link to change MAC address

A lot of drivers actually support changing the MAC address of a link
without taking it down.

Taking down a link is very bad, because kernel will remove routes
and IPv6 addresses.

For example, if the user used a dispatcher script to add routes,
these will be lost. Note that we may change the MAC address of a
device any time. For example, a VLAN device watches the parent's
MAC address and configures it (with a logging message "parent hardware
address changed to ...").

Try first whether we can change the MAC address without taking the
link down. Only if that fails, retry with taking it down first.

https://bugzilla.redhat.com/show_bug.cgi?id=1639274
5 jobs for th/device-set-mac-addr-no-down in 29 minutes and 36 seconds (queued for 30 minutes and 23 seconds)
Status Job ID Name Coverage
  Test
passed #53112
allowed to fail
checkpatch

00:04:18

passed #53113
f28_build_autotools

00:07:45

passed #53114
f28_build_meson

00:04:56

passed #53115
f28_rpm_autotools_dbg

00:08:34

passed #53116
f28_rpm_meson_dbg

00:08:27