Make sure zinc analysis is always sorted.

Note that we still need to check if this is a performance issue.
If so, we can sort only the sections that must be sorted for correctness
(namely, compile options). But then we have to verify that Zinc is OK
with sections being unsorted. It should be, but you never know.

My attempt to replace the defaultdict(lists) with OrderedDicts had
noticeable performance impact, so that's probably not the way to go.

Ultimately we need to benchmark this.

TODO: modify zinc to be more careful about how it compares
compile options between analysis files.