tools: added git_commit.py script
Metadata: metadata generation improvements

Primarily, this fixes a few potential bugs in initial metadata, which
may result in inconsistent ordering of groups, which can be a problem
when relying on category suppression.

This also deduplicates some category suppression code, and moves some
nested functions to top-level methods, which are surprisingly faster.
Metadata: search groups breadth-first when building metadata

This makes category negation consistent, and also makes it work like
it did in Bcfg2 1.2
Metadata: removed stray blank line
doc: updated pros/cons for builtin yum libraries