Remove interval.py

No longer needed, since we build intervals in memory.
Move function spaces classes to separate module
fixup
Move Function and Constant to separate modules
Move Matrix type to separate module
Move Halo type to separate module

We can now remove firedrake.types.
Rationalise module imports in firedrake modules

Third-party things first, then pyop2 imports then firedrake
imports (alphabetised).
Avoid from foo import bar between different firedrake modules

To avoid circular loads, firedrake modules now always import other
firedrake modules directly, rather than importing names from them.  The
exceptions are the parameters and petsc modules (which do not themselves
import any other modules).
Remove gmsh2triangle

No need for it any more.
Minor doc linking/formatting fixes