This package is a copy of golang.org/x/tools/go/internal/gcimporter,
imported from commit 33e937220d8f91f1d242ad15aebc3e245aca5515.
We use it to more directly and efficiently load Go packages from export data.
The alternative would be to use golang.org/x/tools/go/gcexportdata.

The following upstream changes have since been incorporated:
655248709eb08403f2cd91d1d0b783f4d5db38d1
35a9159336abb5bc5040b25c5a3ddf1424de1d8d

The following upstream changes have explicitly been skipped:
5c6ccfdb40a2f7d9a602b7f9655dcb7ae91b1938
8e7acdbce89da28e6f7d7c27f67be8cd0abaecd7
7fde01ffd3cdad86ebc5c73c80edd1aeebb255b9
b79f76fe3e9733fa292a2a558160b3658f45f187
35839b7038afa36a6c000733552daa1f5ce1e838
4534fc34de1678d210cdea5130def0ce4aab1835
67e49ef2d0f326051e22a4a55bdf9344ae1a8ed8
5d334387e1e03040456e1bfe650c6d8b036eb467
fa0125251cc482cce8c015000e15beef48ecafa9
a1db63cc08e0021aa688e1531b00ec88fd715898
2363391a5b2fe95c264da3c106a6ecca73490587

The last upstream commit we've looked at was:
35a9159336abb5bc5040b25c5a3ddf1424de1d8d

The following custom changes have been made:
- allow reuse of byte slices in GetExportData
- remove support for old export data formats
- only read type information from archives, skipping object code
- read directly from an os.File when possible, skipping the indirection through a buffered reader
- remove support for writing export data
- use unsafe for a more efficient implementation of (*token.File).SetLines
