combinations: have source proxy use them when looking up source files

This has the source proxy use combinations to look up source digest
paths.  This means that if a combination is registered for the digest
path, the proxy will abstract the combination sources.

Tests are added to ensure the proxy aggregates the source data across
multiple sources appropriately.  This ties together the previous
combination commits and completes the combinations feature.