pad: add LIBINPUT_EVENT_TABLET_PAD_KEY for pad keys

The Wacom Cintiq 24HD and later tablets send specific key events for
hardware/soft buttons. KEY_PROG1..KEY_PROG3 on earlier tablets,
KEY_CONTROLPANEL, KEY_ONSCREEN_DISPLAY, and KEY_BUTTONCONFIG on later tablets.
We ignore KEY_PROG1-3 because starting with kernel 5.4 older tablets will too
use the better-named #defines.

These differ from pad buttons as the key code in itself carries semantic
information, so we should pass them on as-is instead of mapping them to
meaningless 0-indexed buttons like we do on the other buttons.

So let's add a new event, LIBINPUT_EVENT_TABLET_PAD_KEY and the associated
functions to handle that case.

Pad keys have a fixed hw-defined semantic meaning and are thus not part of
a tablet mode group.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
30 jobs for wip/tablet-pad-keys in 21 minutes and 5 seconds (queued for 5 seconds)
latest
Status Job ID Name Coverage
  Container Prep
passed #768093
alpine:latest@container-prep

00:01:02

passed #768092
arch:rolling@container-prep

00:00:29

passed #768089
fedora:29@container-prep

00:00:26

passed #768088
fedora:30@container-prep

00:00:30

passed #768087
kvm
fedora:30@qemu-prep

00:00:41

passed #768094
freebsd:11.2@container-prep

00:00:26

passed #768090
ubuntu:18.10@container-prep

00:00:26

passed #768091
ubuntu:19.04@container-prep

00:00:24

 
  Build
passed #768100
fedora:30@build-no-debuggui

00:01:23

passed #768101
fedora:30@build-no-debuggui-nodeps

00:01:22

passed #768098
fedora:30@build-no-docs

00:01:10

passed #768099
fedora:30@build-no-docs-nodeps

00:01:12

passed #768096
fedora:30@build-no-libwacom

00:01:27

passed #768097
fedora:30@build-no-libwacom-nodeps

00:01:31

passed #768102
fedora:30@build-no-tests

00:01:21

passed #768103
fedora:30@build-no-tests-nodeps

00:01:24

passed #768106
fedora:30@flake8

00:00:59

passed #768095
fedora:30@scan-build

00:02:57

passed #768105
fedora:30@usr-bin-env-python

00:00:17

passed #768104
fedora:30@valgrind

00:01:13

 
  Vm
passed #768107
kvm allowed to fail
fedora:30@test-suite-vm

00:02:39

passed #768108
kvm allowed to fail
fedora:30@test-suite-vm-valgrind

00:20:18

 
  Distro
passed #768115
alpine:latest@default-build

00:00:19

passed #768114
arch:rolling@default-build

00:01:59

passed #768109
fedora:29@default-build

00:01:33

passed #768110
fedora:30@default-build

00:01:22

passed #768111
fedora:30@default-build-release

00:00:34

passed #768116
freebsd:11.2@default-build

00:00:24

passed #768112
ubuntu:18.10@default-build

00:01:20

passed #768113
ubuntu:19.04@default-build

00:01:23