Simplify of the availablePortsByUdev()

There is no sense to use udev_device_get_subsystem() for comparing with
the predetermined names of subsystems (like "pnp", "usb" and so on).
This idea was preliminary and required further revising after
accumulation of some statistic.

The main ideas in favor of refactoring are given below:

* It seems that reasonable to use the "ID_MODEL", "ID_VENDOR" and others
identifiers to query of properties for all types of serial ports. We
lose nothing, because in the worst case the getUdevPropertyValue()
function will simply return an empty string, as before.

* Earlier we excluded from the list all ports which have a subsystem
with the "platform" name. Practice showed that for these devices is used
the serial8250 driver. Therefore it is reasonable to exclude this type
of devices by the name of drivers instead of by the name of subsystems.

Also are made related changes:

* Is added the resolving of chars for the new udev_device_get_driver()
function

* The functions of getting properties are wrapped for reduction of
length up to 100 characters.

Tested on ArchLinux 64-bit with the on-board, PL2303 serial devices
using Qt4 and then Qt5.

Tested build on Android x86 using Qt5.

Change-Id: I1a66164ca1893180e1ed97524cff98b4a933a63b
Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Use QScopedPointer (RAII) to do not care of the udev resources

It is a good idea to get rid from the manually releasing of the
allocated udev resources.

Tested on ArchLinux 64 bit with on-board and PL2303 serial ports using
Qt4 and then Qt5.

Change-Id: Ib25e100bea37ad3cc0bee015b7de6d4de762f2cc
Reviewed-by: Peter Kümmel <syntheticpp@gmx.net>
Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
Refactor the availablePortsByUdev() in favor to readability

Implementation of the availablePortsByUdev() function is a little
complicated by excess "if/else" conditions and also too long lines,
that worsens readability.

It is reasonable to make the following:

* To get rid of the big "if {...}" blocks in favor to immediate return
from function in case of an error. It will allow to reduce a quantity
of lines and will shift code alignment to the left.

* To split declaration of some long variables and functions into separate
lines, with length at least up to 80~100 characters.

* To drop of the 'struct' keywords and the '::' global namespace
operator for variables.

Tested on ArchLinux 64 bit with the on-board and PL2303 serial ports
using Qt4 and then Qt5.

Tested build on Android x86 using Qt5.

Change-Id: Iddc2a9511230e56e4a9d01a4c22af7b2eaeae60c
Reviewed-by: Peter Kümmel <syntheticpp@gmx.net>
Reviewed-by: Sergey Belyashov <Sergey.Belyashov@gmail.com>
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Merge remote-tracking branch 'origin/stable' into 5.3

Change-Id: I65f7cd2fdeced526c8bd7dc5bc4081e7687e7310