Stash computed form on tensor for re-assembly

When passing in a tensor to assemble, stash the form and computed
kernels on the tensor such that if we reassemble the same form on
the same tensor we save having to preprocess/split the form again.
Add test assembling different forms into the same Function
Add test assembling different forms into the same Matrix
Merge pull request #244 from firedrakeproject/stash-computed-form-on-tensor

Stash computed form on tensor for re-assembly