Remove capsulethunk.h

Not needed any more since we're not using capsules anywhere.
Remove interval.py

No longer needed, since we build intervals in memory.
Remove gmsh2triangle.py

No need for it any more.
Split core_types.pyx into parts and remove

The naming was a legacy of Fluidity interfacing, it makes more sense to
split its pieces into functional parts and migrate them to appropriate
other modules.
Update gitignore
Move function space classes to separate module
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).
Minor doc linking/formatting fixes
Merge pull request #269 from firedrakeproject/no_core_types

Now that all the C interfacing functionality is in dmplex.pyx, we can
split core_types into more logical pieces and remove it.  At the same
time, split up types into smaller chunks.  Finally, rationalise imports
within firedrake modules.