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.