Implement HPUX platform specific atomic API
Add detection of atomic.h in CMakeLists.txt

It is only useful on HP-UX, but it is harmless on other platforms.
heap corruption under hpux

Under hpux memory allignment is 8 bytes, so the memory manager
information block covers the first 8 bytes of the allocated memory
instead of the 4 bytes which are needed in other platforms.
HPUX is big endian also
heap corruption under HPUX

NCollection containers use their own memory managers depending on the
situation.This memory manager did not take into account the memory
allocation alignment of platforms where the minimun structure memory
footprint is 8 bytes.For HPUX we used types defined in intypes/stdint
to get a basic 64 bit long variable to define it as the alignmetn type.
Using internal compiler type (like 'long long int') was not possible
because gcc diferentiates it between 36 & 64 bit compiling.
TODO : This could possibly be the case for other platforms like
IRIX and sparc SOLARIS.
Merge pull request #419 from tpaviot/review/hpux-bug-fixes

Review/hpux bug fixes