Split function_space_impls.py into smaller files
The file function_space_impls.py has reached a length of 1053 lines. Adding support for additional Finite Element spaces will make it grow further.
The primary purpose of this MR is to split it up into several files:
- one for the abstract base class
FunctionSpaceImpl - one for each Finite Element space (here we combine scalar and vectorial Langrage spaces into one file, e.g.
p2_space_impl.py) - one file for the factory function
create_impl()which becomes a free-function instead of a static class method to avoid problems with cyclic dependencies
The files are collected inside their own folder function_space_implementations inside operator_generation.
The secondary purpose is to adapt the code in OperatorGenerationTest.hpp to a name change in HyTeG, see hyteg!849 (merged) and hyteg!851 (merged).