issue 10 - Remove duplicated code from sclGet?PUHardware
issue 10 - Define a global array _sclHardList

_sclHardList store devices list and will be used by sclGetGPUHardware
and sclGetCPUHardware initially (for sure at more places)
issue 10 - move nCPUplatforms check inside else

It let us remove duplicated code:
  hardware.platform = CPUplatforms[0];
  hardware.device = devices[nDevice];
issue 10 - Don't traverse devices array

We know already wich device we want and where it is
issue 10 - return if not CPU is found
issue 10 - exit cleanly when no platform
issue 10 - Remove not needed "else"

This "else" is not needed because if nCPUplatforms is 0 then returns
cleanly.
issue 10 - Detect if device exists

exit cleanup pattern need a refactor
issue 10 -  refactor cleanup and exit

Goto seems to be a C pattern for handling exceptions.
issue 10 - minor change for readability
issue 10 - use internal function to create queues
issue 10 - add _sclHardListLength
cleanup of unused variables
cleanup
Add a note about CL_DEVICE_TYPE
issue 10 - sclGetCPUHardware use _sclHardList

A lot of changes and not tested because sclGetCPUHardware doesn't work
anyway (without modifications)
issue 10 - sclGetGPUHardware use _sclHardList

Surprisingly it works! Time to sleep.

Of course we will refactor sclGetGPUHardware and sclGetCPUHardware
because uses the same code(copy&paste).