Migrate many classes from core_types to types

It is a historical accident that FunctionSpace and its ilk live in
core_types.  There's no need, so migrate them to types.  This makes
various issues with circular imports go away, and reduces the frequency
at which one must recompile the cython extension module.