Moved/added kernel objects to nbnxn_opencl_ptr_t

1. Removed kernel objects from ocl_gpu_info_t
2. Similar for initializations in gpu_utils.cpp
3. Added kernel fields to nbnxn_opencl data structure
4. Added nbnxn_init_kernels
5. Updated select_nbnxn_kernel to work with the kernels from
nbnxn_opencl_ptr_t as a cache
6. Added free_kernels