Use the qt_safe_* methods for open/read/write/close

This makes the operation thread-safe. It also helps with preventing the leaks
for child processes. Also, there is now some protection against EINTR when the
system call has to be restarted.

Thanks go to Thiago Macieira for providing the original patches.

Task-number: QTBUG-36824

Change-Id: I90cac87c5e1c55a57e5ba6c20313446c43c6d242
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
Use Q_GLOBAL_STATIC for the udev symbol loading QLibrary instance

Even though this has been introduced in 5.1, officially, we can rely on it in
the previous versions even if private API that it was.

* Global variables are better avoided.

* Q_GLOBAL_STATIC is thread-safe in Qt 5.

* QLibrary depends on QCoreApplication and we need to make sure that is
initialized afterwards, respectively.

The instantiation is now moved into the corresponding source file so that if it
is included at more than one place, it will not be instantiated each time it is
used in a new source file including this header.

Task-number: QTBUG-36870

Change-Id: I96de1257e5836b69d0c48b717d7c2e708d6b0fee
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>