obtain fiat_element via FFC function
Merge pull request #307 from firedrakeproject/fiat_elt_via_ffc

obtain fiat_element via FFC function
Remove dangling symlinks from PyLit
Accept kwargs in Expression construction

This allows users to define additional variables in the Expression
constructor that they can refer to by name in the code snippet.  Both
scalar and vector-valued variables are supported (the latter indexed in
the normal single-indirection way).  The value of the variable is
available on the Expression as a public property of the same name (which
also allows setting of values).
Wire Expressions with user arguments into interpolate

If the expression has user-provided arguments, we need to arrange for
them to be available in the kernel body and pass them to the par_loop.
Test expressions with user-provided arguments
Add state slot to Expression

Bumped whenever a value in the expression is modified.
Record original value passed in to DirichletBC constructor

We will need this to do the right thing for bcs with Expressions that
contain user-provided arguments.
Re-interpolate Expression if state has changed

If the user has modified a value in an Expression that cached
function_arg on the bc is wrong, so notice this and update it.
Add tests of BCs with user-provided Expression arguments
Update docstring of DirichletBC constructor
Test modifying constants in bcs
Add section on time-dependent bcs to docs

Mention usage of Expressions with user-provided arguments and Constants
as well as literal values.