Function.interpolate returns self to allow chaining

This is the same behaviour as Function.assign already has.
Set ufl.Coefficient compatible attributes in Expression

These attributes are required by ufl.Coefficient to render the repr
of an Expression. Since we don't call the ufl.Coefficient constructor
(since we don't yet know the element) we need to set them ourselves.
Test interpoloation of an Expression on a Function