Fix MixedDat.inner and add test
Pacify lint
Return a float from dat.inner
Fix setting matrix diagonal if row DataSet has dim > 1

If the row DataSet has dimension > 1 we need to treat the given rows
as block indices and set the diagonals of all rows in each block.
Use NumPy splat instead of list comprehension
Add test setting the matrix diagonal to 1.0
Merge pull request #359 from OP2/fix/set-diagonals-block

Fix setting matrix diagonal if row DataSet has dim > 1

If the row DataSet has dimension > 1 we need to treat the given rows as block
indices and set the diagonals of all rows in each block.
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.
Update PETSc requirement to PETSc next

MatCopy_Nest has not made it to master yet, but we need it for form
assembly caching.
Missed one occurrence of s/master/next/
And update install.sh
Remove obsolete find_op2 module
Docs: properly rebuild API docs in livereload mode
Add optional argument headers to Kernel

Allows passing additional system headers to be included.
Allow executing user code snippet in kernel wrapper

Add an optional argument user_code to the Kernel constructor, which
allows specifying a code snippet which is to be executed at the very
start of the generated kernel wrapper. This allows executing some
code as a one-off, such as setting a random seed.
Fix opencl JITModule caching for direct loops with repeated args

If an Arg is repeated, we generate different code compared to if there
were the same "type" of Dat, so keep track of that in the cache key
too.
Temporary fix for Kernel caching

If we get an AST, generate code before computing a hash.
Document Kernel parameters
Add example usage of headers, user_code to docstring