go/packages: don't crash if given an invalid overlay
go/packages: don't crash if given an invalid overlay

If the user of go/packages passes an overlay package that results in a
package having Go files in multiple directories, return an error instead
of crashing.

This is more of a bandaid than a fix for anything, but go/packages is
hard to follow even with full data. Without it I don't really have a
clue, so this is the best I've got.

Fixes golang/go#43520, I guess.

Change-Id: I37537ae2e0126f715719273ed9a6708ed53b850f
Reviewed-on: https://go-review.googlesource.com/c/tools/+/282732
Trust: Heschi Kreinick <e89ab2b172855aa0ad01c40c4d8a3535a61ac68a@google.com>
Run-TryBot: Heschi Kreinick <e89ab2b172855aa0ad01c40c4d8a3535a61ac68a@google.com>
gopls-CI: kokoro <2ac7b1f3fa578934c95181d4272be0d3bca00121@google.com>
TryBot-Result: Go Bot <66cb808b70d30c07676d5e946fee83fd561249e5@golang.org>
Reviewed-by: Rebecca Stambler <d7cf11e5f299d88ea8348366a9fc4f7c335c3afa@golang.org>

golang/tools,golang/tools,golang/tools,golang/tools,golang/tools