Samples used for testing need to have build tags for new and old style:
```
//go:build tag
// +build tag
```
The particular problem here seems to be that 1.16 was actually importing the package referred in the `TestGoModules` test (`import "golang.org/x/text/unicode/norm"`) which, in the CI system's version lacks an old style go tag comment. Hence go complaining of a `//go:build` without a `// +build`. I made all files bi-tagged for consistency.
fixes#13
The bug was that non-stdlib imports were failing to be found by the parser.
The problem is that the default importer only imports from compiled files. But we specifically want to import from source files. For go 1.9 this is easy, go/importer has an importer.For that takes "source". However, previous to go 1.9, this doesn't exist. To keep the code working in previous versions, we just grab the code from 1.9's srcimporter and include it in the build, and then conditionally compile in that code if we're not running on go 1.9 or greater (if we are running on go 1.9, we can use the stdlib version, which is better because it'll get fixes etc automatically).
Also added a bunch of tests to ensure that this code won't break again without a test failing.