Add note on extra configure options for PETSc + OpenMP
Make arg_vec variables thread local in OpenMP

Move declarations inside openmp parallel region.
Merge pull request #312 from OP2/petsc_doc

Mention PETSc configure options for running with openmp backend.
Merge pull request #291 from OP2/openmp-threads

Move declarations of vec args to within parallel regions.
Raise exception if generated code differs across ranks
Note requirement for uniform generated code across ranks
Add test that Dat copy increases version of copied-into Dat
Add modifies_argn decorator

Use this to indicate that a method modifies its nth argument.
Add modifies_argn decorators to Dat.copy and Solver.solve