resolve: support cross-language dependency resolution, and enable go to proto resolution (#823)

* Defines the CrossResolver interface, which can be implemented by language extensions in order to provide custom cross-language dependency resolution logic
* Creates resolve.NewRuleIndexCrslv and resolve.FindRulesByImportCrslv to enable the usage of cross resolvers during dependency resolution
* Implements a language/proto CrossResolver, which provides dependency resolution for the go extension using well-known type information
* Refactor language/go's Resolve logic to depend on the proto cross resolver

Fixes #771
11 files changed