path.[ch] - canonicalisation
util/ tests
Handle cpp dependencies via -MM
Tweaks to dynarray_pop() / asserting
Handle leading ../ in canonicalise_path()
Merge canonicalisation code into feature/cpp/dep-gen
cpp canonicalises its include paths

This looks nicer in the output, and means we can uniq paths for
dependency checking (next).