Calling "OptiXDevice::load_kernels" multiple times would call "optixPipelineDestroy" on a pipeline pointer that may have already been deleted previously (since the PIP_SHADER_EVAL pipeline is only created conditionally). This change also avoids a CUDA kernel reload every time this is called. The CUDA kernels are precompiled and don't change, so there is no need to reload them every time.