compiler: fix parsing issue with non-ASCII first package char

Fix a bug in the parser code that decides whether a given name should
be considered exported or not. The function Lex::is_exported_name
(which assumes that its input is a mangled name) was being called on
non-mangled (raw utf-8) names in various places. For the bug in
question this caused an imported package to be registered under the
wrong name. To fix the issue, rename 'Lex::is_exported_name' to
'Lex::is_exported_mangled_name', and add a new 'Lex::is_exported_name'
that works on utf-8 strings.

Fixes golang/go#27836.

Change-Id: I2d3b923c9f507348a7f0f2c8161d3cc2dc68d02f
Reviewed-on: https://go-review.googlesource.com/137736
Reviewed-by: Ian Lance Taylor <iant@golang.org>
3 files changed