Cached builds

Source units now point to their previous revision if the unit isn't changed, and those units aren't rebuilt during the `make` step.

Haha, I had read something about Rob Pike (pbuh) preferring `(arg0 type0, arg1
type0)` to `(arg0, arg1 type0)` because of how it looks in godoc, but
the standard library has many more examples of the latter :)


Quinn Slack writes:

>> @@ -95,6 +95,32 @@ func resolveWorkingTreeRevision(vcsType string, dir string) (string, error) {
>>  	return strings.TrimSuffix(string(bytes.TrimSpace(out)), "+"), nil
>>  }
>>  
>> +func listRevisions(vcsType string, dir string) ([]string, error) {
>
> `vcsType, dir string`
>
> ---
> Reply to this email directly or view it on GitHub:
> https://github.com/sourcegraph/srclib/pull/97/files#r22396127

-- 
    Samer