This currently affects only the grace.write user function, but the new infrastructure will make it
much easier to expand the graphing abilities and to support other 2D graphing software. The
plotting code has also been significantly simplified.
The pipe_control.grace.get_data() function has been shifted into the pipe_control.plotting module.
It has been split up into the base assemble_data() function with the data assembly shifted to
assemble_data_scatter(), assemble_data_seq_value() and assemble_data_series_series(). This split
massively simplifies the code by not packing all different graph and set combinations into one.
In addition the auxiliary functions classify_graph_2D(), fetch_1D_data(), get_functions(), and
get_data_type() have been created to maximise code sharing between the different assemble_*()
functions.