Use devm API to prevent memory leaks

Fixes also the errors paths in probe
Swap X/Y by default for portrait tablets

As this is what our test device is using.
Remove unused GTP_CHANGE_X2Y option

If we ever see a landscape tablet with that
model of touchscreen, we can add it back as
an option.
Remove goodix_ts_remove

This callback does not do anything useful besides setting clientdata to
NULL, which is not that much of a trouble if we forget to do it.

Remove the callback to simplify the module.
Remove useless memset

kzalloc already takes care of setting the buffer to 0.
inline input_mt_slot and input_mt_report_slot_state

removes the need for gtp_touch_up and gtp_touch_down, and will allow
for a better handling of slots.
Do not initialize variables in goodix_ts_work_func

So the compiler can gives us hints if one is not used properly
Update doc texts
Cleanup gtp_i2c_read and gpt_i2c_write

The functions should return an int, and actually, the i2c call is made
exactly once. Drop the retry thing.
Make gtp_i2c_read accept a register as parameter

simplifies the calls