NvSciSync object registration/unregistration with CUDA

Use cudaImportExternalSemaphore API to register/import an NvSciSync Objects into the CUDA address space. This API accepts a valid NvSciSyncObject as a parameter to semHandleDesc. On completion, the extSem_out returned internally holds a reference to the NvSciSyncObject passed earlier and must be sent to the APIs listed below.

Use cudaDestroyExternalSemaphore (for runtime) to unregister/destroy an already registered/imported NvSciSync Object from the CUDA address space.