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.
Fix up doc linking after type migration