touchpad: restore thumb detection while keeping fixes from !292

!292 improved libinput's ability to detect multiple-finger clicks when
the fingers were not aligned close to horizontally. However that caused
thumb detection to fail in several use cases.

This patch restores thumb detection for
- 2+ finger physical clickpad presses
- resting thumb while two-finger scrolling
- touches in the thumb exclusion area during multi-finger taps
and improves pinch detection when thumb is centered below fingers.

It also further enhances the flexibility of finger position for 2-, 3-,
or 4-finger taps: if all tapping fingers land on the touchpad within a
short time (currently 100ms), they will all count regardless of
position (unless below the lower_thumb_line).

Signed-off-by: Matt Mayfield <mdmayfield@yahoo.com>
49 jobs for master in 16 minutes and 2 seconds (queued for 4 seconds)
Status Job ID Name Coverage
  Prep
passed #2784839
alpine:latest@container-prep

00:00:16

passed #2784838
arch:rolling@container-prep

00:00:16

passed #2784832
check-ci-script

00:00:36

passed #2784834
fedora:30@container-prep

00:00:19

passed #2784835
fedora:31@container-prep

00:00:17

passed #2784836
fedora:32@container-prep

00:00:19

passed #2784833
kvm
fedora:32@qemu-prep

00:00:17

passed #2784840
freebsd:11.2@container-prep

00:00:23

passed #2784837
ubuntu:19.10@container-prep

00:00:17

 
  Build
passed #2784846
build-no-debuggui@fedora:32

00:00:47

passed #2784847
build-no-debuggui-nodeps@fedora:32

00:00:56

passed #2784844
build-no-docs@fedora:32

00:00:50

passed #2784845
build-no-docs-nodeps@fedora:32

00:01:08

passed #2784842
build-no-libwacom@fedora:32

00:01:11

passed #2784843
build-no-libwacom-nodeps@fedora:32

00:00:47

passed #2784848
build-no-tests@fedora:32

00:00:45

passed #2784849
build-no-tests-nodeps@fedora:32

00:00:47

passed #2784852
flake8@fedora:32

00:01:09

passed #2784841
scan-build@fedora:32

00:01:54

passed #2784851
usr-bin-env-python@fedora:32

00:00:19

passed #2784850
valgrind@fedora:32

00:00:59

 
  Vm
passed #2784859
kvm
vm-gestures-device

00:03:11

passed #2784860
kvm
vm-gestures-device-no-libwacom

00:02:45

passed #2784861
kvm
vm-others

00:03:02

passed #2784862
kvm
vm-others-no-libwacom

00:02:30

passed #2784863
kvm
vm-pointer

00:03:09

passed #2784864
kvm
vm-pointer-no-libwacom

00:03:00

passed #2784857
kvm
vm-tablet

00:03:36

passed #2784858
kvm
vm-tablet-no-libwacom

00:02:58

passed #2784855
kvm
vm-tap

00:04:01

passed #2784856
kvm
vm-tap-no-libwacom

00:04:01

passed #2784853
kvm
vm-touchpad

00:07:23

passed #2784854
kvm
vm-touchpad-no-libwacom

00:07:21

 
  Valgrind
passed #2784868
kvm
vm-valgrind-gestures-device

00:06:20

passed #2784986
kvm
vm-valgrind-others

00:06:58

passed #2784870
kvm
vm-valgrind-pointer

00:05:32

passed #2784867
kvm
vm-valgrind-tablet

00:12:53

passed #2784866
kvm
vm-valgrind-tap

00:09:09

passed #2784865
kvm
vm-valgrind-touchpad

00:15:18

failed #2784869
kvm allowed to fail
vm-valgrind-others

00:07:18

 
  Distro
passed #2784877
alpine:latest@default-build

00:00:20

passed #2784876
arch:rolling@default-build

00:00:56

passed #2784871
default-build-release@fedora:32

00:00:45

passed #2784872
fedora:30@default-build

00:01:09

passed #2784873
fedora:31@default-build

00:00:49

passed #2784874
fedora:32@default-build

00:00:46

passed #2784878
freebsd:11.2@default-build

00:00:19

passed #2784875
ubuntu:19.10@default-build

00:01:09

 
  Deploy
passed #2784879
wayland-web

00:00:16