Use -q option for git commit when saving to cache

Using -q prevents git from displaying the warning message about user
config not being set:

```
Committer: root <root@default-ubuntu-1204.vagrantup.com>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author
```
Use git to filter tags when searching cache

The `git tag -l` can be given a pattern such that only tags matching the
pattern are returned. Instead of retrieving a listing of all tags and
filtering in the ruby code, we now ask for the tag we are looking for
and will get back either a single line (hit) or no output (miss).

This will greatly reduce build job output which was streaming the
tag listing multiple times prior to this patch.
Include software config file content in tag digest

Ensure that a change to how an item is built invalidates the cache. This
is important since a build could succeed and be saved into the cache
only to later fail the health check. In almost all cases, the fix for
this will either be a change to the software or its build config.

When computing the cache key (git tag name), we now compute the SHA256
digest of $SOURCE_CONFIG + $DEP_STRING where $SOURCE_CONFIG is the
contents of the software config and $DEP_STRING is $NAME-$VERSION of all
items built before this one delimited with '-'.

Omnibus::Software has a new attr_reader source_config to allow access to
the file contents of the software config.
Merge branch 'sf/git-cache'