Update location of firedrake source code
Get firedrake version programmatically when building docs

Rather than hardcoding the version of firedrake into the documentation
building process, use firedrake.__version__.
Update gitignore
Overload ufl.adjoint and explicitly pass firedrake.Arguments

Required, otherwise ufl.adjoint returns ufl.Arguments.
Fix SNES option setting

We need to pass flag options with value None to petsc4py otherwise the
value is converted into a string and used as an output file name. So
convert options where the type of the value is boolean to None if True
and empty if False.