allocate input_mt and other extra stuffs within struct input_dev

We can currently use input_dev->dev.platform_data as a place to store
the extra fields required for backporting multitouch stuffs.

This makes compat-mt.c closer to the original mt.c and allows to remove
the extra handling in hid-multitouch.c

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
fix .input_configured() calls when QUIRK_MULTI_INPUT is not set

The previous implementation called .input_configured() at each end of
report. However, if QUIRK_MULTI_INPUT is not set, this callback should
be called once at the end.

We need to find out what report will be the last one:
- dump some code from hidinput_connect and hidinput_configure_usage to
  know when the callbacks will be called.
- be sure to call one last time input_allocate_extra()

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Implement HID_QUIRK_NO_EMPTY_INPUT in compat layer

Not as clean as possible if the device presents a report not related to
multitouch or pen at the end of the descriptor.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>