Sort headers/global definitions to enable reproducible code generation

headers and global_declarations are generated by methods that return
sets. So even with the same inputs it is not guaranteed that the same
source code is generated since sets do not guarantee a specific order
when iterating over them.
7 jobs for sort-headers in 3 minutes and 11 seconds (queued for 3 seconds)
latest
Name Stage Failure
failed
minimal-sympy-master Test
    result = str(self._print(node))
File "/builds/seitz/pystencils/pystencils/backends/cbackend.py", line 177, in _print
return getattr(self, method_name)(node)
File "/builds/seitz/pystencils/pystencils/backends/cbackend.py", line 184, in _print_KernelFunction
function_arguments = ["%s %s" % (self._print(s.symbol.dtype), s.symbol.name) for s in node.get_parameters()]
File "/builds/seitz/pystencils/pystencils/backends/cbackend.py", line 184, in <listcomp>
function_arguments = ["%s %s" % (self._print(s.symbol.dtype), s.symbol.name) for s in node.get_parameters()]
AttributeError: 'Symbol' object has no attribute 'dtype'
ERROR: Job failed: exit code 1