This patch modifies the plugins so that the initialization of <Dev>KernelTy objects
is done in the init method. Part of the initialization was done in the
constructKernelEntry method. Now this method is called constructKernel
and only allocates and constructs a <Dev>KernelTy object.
This patch prepares the kernel class for the new implementation of device
reductions.
Potentially this can fail right?