Add ability to pass parameters to compile_form

Necessary to specify things like a selected quadrature degree to the
form compiler.  Previously we could only do so globally by modifying the
global form compiler parameters slot in the parameters dict.
Only save form_compiler_parameters if not None
Add form_compiler_parameters argument to assemble

Allow specification of parameters to the form compiler on a per-assemble
basis (rather than just globally).
Respect user's form compiler parameters in solvers

Although we accepted the form_compiler_parameters argument, it was never
previously fed to the form compiler.  Now that the infrastructure is in
place, do that.  This allows the user to specify a quadrature
degree (for example) when calling solve.
Make assembly cache aware of form compiler parameters

Now that we're obeying the user-provided form compiler parameters, we
should add these as part of the cache key.
Add minimal test of specifying quadrature degree
Merge pull request #383 from firedrakeproject/fc-parameters

* fc-parameters:
  Add minimal test of specifying quadrature degree
  Make assembly cache aware of form compiler parameters
  Respect user's form compiler parameters in solvers
  Add form_compiler_parameters argument to assemble
  Only save form_compiler_parameters if not None
  Add ability to pass parameters to compile_form