cuda: Don't continue Plan colour loop if blocks <= 0

If ncolblk[col] == 0 we would not execute the cuda kernel and continue
the loop over plan colours.  However, if this happens to occur for the
last owned colour, this would mean we'd never fetch the reduction data
back from the device to the host.

Fix this by wrapping the call to the cuda kernel in an if blocks > 0
instead of continuing the loop.