Client: Don't modify running services if ignored

Previously, when a bundle's contents were updated, all services listed
in the bundle were stopped if the status attribute was set to 'ignore'.

Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
Metadata: log now client creation with profile
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.