Use new generic restriction/prolongation etc...

Now that we can compute cell node maps and restriction kernels for
arbitrary point evaluation function spaces, use them.
Remove c2f_cells
Reorganise multigrid into separate files
Add VFSHierarchy and MFSHierarchy
Add dim property to FSH and VFSH
Restriction etc kernels for VFSH
Move restriction etc... routines to function space
Move P0 restriction etc... to functionspace
Wrap kernel creation in try/except

Currently only works for scalar-valued, rather than vector-valued
elements.
Add __mul__ operator to build MFSHierarchies
Fix building functions on MFSHierarchies

Also add prolongation/restriction thereof.