Only preprocess kernel code on device

It's only on the device where we need to run pycparser on the kernel
code, which is what necessitates preprocessing it.  We can speed up host
execution a little by never preprocessing the code.
Merge pull request #360 from OP2/preprocess_on_device

Only call the preprocessor on kernels that will be used on device
backends.