parloops: pass kwargs on to op2 Kernel constructor

This allows specifying keyword arguments in a Firedrake par_loop to
e.g. define custome headers or user code to be included in the kernel.
parloops: add support for components of mixed functions
parloops: add tests for components of mixed functions

The indirect loops test fails, but I couldn't figure out why.
parloops: add failing tests for full mixed functions
Merge pull request #379 from firedrakeproject/more-flexible-parloops

* more-flexible-parloops:
  parloops: add failing tests for full mixed functions
  parloops: add tests for components of mixed functions
  parloops: add support for components of mixed functions
  parloops: pass kwargs on to op2 Kernel constructor