Scale device-provided ABS_MT_TOUCH_WIDTH and ABS_MT_TOUCH_HEIGHT

Width and height are given in surface units and should be scaled not
only for the defaults, but also the hardware-provided values.

Signed-off-by: Jason Gerecke <killertofu@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Enforce minimum touch point size

Devices that don't give major/minor in surface coordinates produce no output
otherwise. The Elan touchscreen in the T440s announces major/minor with a max
of 255, an average finger produces in the 2-3 range.

That also causes some artefacts in general, since the major/minor tend to stay
the same, a touch may not have the right values until it changes. Use of
EVIOCGMTSLOTS is needed here to sync the original value.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Use ABS_MT_TOUCH_MAJOR even without ABS_MT_TOUCH_MINOR

The kernel allows the latter to be omitted "if the contact is circular",
so copy the data from the former if available.

Signed-off-by: Jason Gerecke <killertofu@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>