I started looking at ConstantFunction, and if we keep the old interface
and let ConstantFunction inherit from Function, it will involve quite a
lot of code for something rather simple because on the basis of the cell
type and the rank of the constant, an element needs to be chosen. To
keep ConstantFunction simple, is it reasonable that a ConstantFunction
require a FunctionSpace in its constructor? FFC is already generating
this since it treats constant functions as DG0 elements. This way the
ConstantFunction code will be really simple.