Multiple updates.

- Added the default ctor, copy ctor and copy operator prototyes
to the GPUinfo class.
- The GPUs enumeration functions now return a new type: EnumeratedGPUs.
This structure contains the listed GPUs and the length of this listing.
Implemented the ctors, dtor and copy operator of GPUinfo.
Replaced the previous return type of the GPU enumeration functions.

- Replaced the EnumeratedGPUs type by std::list<GPUInfo *> as the return
type of the GPUs enumeration functions. This change polutes the namespace
and encreases the external dependecy, but works perfectly as a
demonstration.
Updated GPUinfo::get_designation() behaviour.

- GPUinfo::get_designation() will return "" when no designation is
available, instead of returning nullptr.
Multiple updates.

- Added gpud_helper.hpp file.
- Defined  GPUD_DLLEXPORT macro for Windows environments.
- Dllexported GPUInfo class and all the GPUs enumeration functions.
Multiple updates.

- Replaced the type of GPUinfo data member mp_designation from
char * to std::string. Also renamed it to m_designation;

- Updated all the references regarding the previous change.

- Exported to dll the template instantiaton of std::string and
std::list<gpud::GPUinfo>.
Added the src file for the WinAPI implementation.