lava_dispatcher: match devices by udev attributes

This patch allows to use arbitrary udev variables to match devices in
device_info and static_info entries, and makes board_id non mandatory.

board_id, usb_vendor_id, usb_product_id, fs_label are now deprecated,
but there is a lot of code that still assumes them.

Note that in the absense of board_id, or ID_SERIAL_SHORT, devices are not
garanteed to be unique, and LAVA will not raise any exception in that
case.

Signed-off-by: Milosz Wasilewski <milosz.wasilewski@linaro.org>
Signed-off-by: Stevan Radakovic <stevan.radakovic@linaro.org>
Signed-off-by: Antonio Terceiro <antonio.terceiro@linaro.org>
Signed-off-by: Tim Jaacks <tim.jaacks@garz-fricke.com>
20 jobs for job_udev_rules in 16 minutes and 47 seconds (queued for 4 seconds)
latest
Status Name Job ID Coverage
  Test
passed dispatcher-debian-10 #117030
amd64

00:03:09

passed dispatcher-debian-11 #117032
amd64

00:03:56

passed server-debian-10 #117031
amd64

00:03:46

passed server-debian-11 #117033
amd64

00:05:41

 
  Analyze
passed bandit-sast #117034
amd64-dind

00:00:53

passed black #117035
amd64

00:00:41

passed code_quality #117036
amd64

00:00:29

passed codespell #117041
amd64

00:00:23

passed coverage #117037
amd64

00:06:33

60.97%
passed dockerfiles #117038
amd64

00:00:22

passed pylint #117040
amd64

00:03:10

passed schemas #117039
amd64

00:00:35

 
  Build
passed debian/10 #117062
amd64

00:01:21

passed doc #117063
amd64

00:00:43

passed docker-amd64-dispatcher #117064
amd64-dind

00:03:41

passed docker-amd64-server #117065
amd64-dind

00:04:12

passed debian/10 #117043
amd64

00:01:22

passed doc #117042
amd64

00:00:42

passed docker-amd64-dispatcher #117044
amd64-dind

00:03:37

passed docker-amd64-server #117045
amd64-dind

00:04:00