PI-GUI/SerialFrameDescriptor: Added a default constructor.

Also added the 'hasCRC' method to easily determinate if the frame
contains CRC bytes or not.
PI-GUI/SerialPortListener: rewrote the class to be a base class.

Removed application-specific code and rewrote the class to be more generic.
This way, application-specific serial port listeners can be built by inheriting
this class.
PI-GUI: small fixes regarding serial data.

SerialFrameDescriptor:
    The size-related types and methods now use the int type instead
    of unsigned int.

SerialPortListener:
    Added the virtual 'parseData' protected method that will be used
    to parse the received data frames and provide application-specific
    data handling.
PI-GUI: Modified the default constructor.

Gave non-zero default sizes to frame elements to avoid potential issues
that could arise if the user tries to initializes a SerialPortListener
instance with a default SerialFrameDescriptor.
PI-GUI: moved all serial related files in a separate directory.

This enhances reusability of the serial module for other applications,
such as the ground software.
PI-GUI: Modified an include directory (serial/serialdialog.h).
PI-GUI/SerialPortListener: Added the SerialFrameDescriptor to constructors.

It is now needed to define the SerialFrameDescriptor when instanciating a SerialPortListener
object.
PI-GUI: Created the PIControllerSerialPortListener class.

This class is based on SerialPortListener and provides application-specific
reimplementations of functions from this base class to parse data sent
during PI control parameters design from the CWIS control module.
PI-GUI/SerialPortListener: Added additional loop conditions.

Added conditions to the loops used to wait for serial data. If the thread
is to be stopped, the loop exits.
PI-GUI: Completed the last commit (SerialPortListener stop condition).

Added a check of the m_stop condition in the thread loop to avoid
parsing a "fake" frame and recording nonsensical data if the CRC
happened to be correct.
PI-GUI: Added the PIControlData structure.

It replaces the previous ExperimentData_s structure. The 'experiment.h'
header was renamed to 'picontroldata.h' accordingly.

Removed any references to application specific structures and signals
in SerialPortListener.

Added a signal sending a PIControlData structure in PIControllerSerialPortListener.
PI-GUI: Implemented the application specific 'parseData' method.

PIControllerSerialPortListener:
    Implemented the 'parseData' method to divide the received frame
    in three fields: time, duty cycle and temperature.

SerialPortListener:
    Removed commented code that was previously used to parse the ground
    software data frames.
PI-GUI/SerialPortListener: declared the 'setSerialFrameDescriptor' as protected.

This method had no reason of being public as modifying the serial frame descriptor
during execution does nothing (all the data is extracted from the structure when
lauching the thread for performance).
PI-GUI: redeclared 'setSerialFrameSelector' as public.

The function ended up being useful for the case when you already know
the serial frame but don't already have the serial port configuration.
PI-GUI: The main window now generates and starts a serial port listener.

Added a PIControllerSerialPortListener object to the main window.
The serial frame configuration is fixed and defined when the window
is constructed. The serial port configuration is set through the
Config/Serial window menu.
PI-GUI: fully documented the SerialPortListener class.