evdev: Extend the device open callback with a close callback as well

We need to return the device to logind with ReleaseDevice().

https://bugzilla.gnome.org/show_bug.cgi?id=726199
evdev: Set the initial pointer position for all pointer devices

Rather than just those on the main seat.

https://bugzilla.gnome.org/show_bug.cgi?id=726199
evdev: Extract code for setting the libinput seat out

We're going to create the main seat at an earlier time, when
we don't have the physical libinput_seat yet, so we need to
do the association later.

https://bugzilla.gnome.org/show_bug.cgi?id=726199
evdev: Always create the main seat

There could be times when we may not necessarily see a device appear
at initialization time, like when we're VT switched away when we
initialize, and thus we can't ever rely on a main seat appearing.

Always create a main seat with logical pointer/keyboard devices, and
tie the first physical seat that comes in to the main seat.

https://bugzilla.gnome.org/show_bug.cgi?id=726199