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.