C-API for ftimings
This is rather big update, ftimings can now be used via a C-Api, see test/c_test.c for an example on how to use it. This step lead to a slight overhaul also of the Fortran API, there are now also a number of ..._node member functions of timer_t that can be used if cannot or does not want to specify the node of interest via an explicit chain of names. An example: Instead of type(timer_t) :: timer ... call timer%print("foo", "bar", "baz") one can now also do type(timer_t) :: timer type(node_t) :: node ... node = timer%get_root_node() node = node%get_child("foo") node = node%get_child("bar") node = node%get_child("baz") call timer%print_node(node) This construction might sometimes be necessary, e.g. if the hierarchy is very dynamic or if the current provided maximum number of six levels in the non-_node functions is not sufficient (but think about if you REALLY need more than six levels..). This is similarly done on the C-side, there is even no restriction on the number of levels by using variadic lists. Still, also there _node functions are provided. All C-API symbols are prefixed with "ftimings_" in order to avoid name clashes.