Starlark AST: use a list of bindings instead of a map in load statements

- The map was not useful: all we want to do is to iterate on the bindings
- Using Identifier as a key is not well defined (we shouldn't compare them and they shouldn't be hashable in the first place)
- Using Identifier instead of String for the original name allows us to preserve the location in the AST

RELNOTES: None.
PiperOrigin-RevId: 220860272
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java b/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java
index 8adda27b..78de4f9 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java
@@ -1221,8 +1221,8 @@
     List<Statement> statements = parseFileForSkylark("load('//foo/bar:file.bzl', 'fun_test')\n");
     LoadStatement stmt = (LoadStatement) statements.get(0);
     assertThat(stmt.getImport().getValue()).isEqualTo("//foo/bar:file.bzl");
-    assertThat(stmt.getSymbols()).hasSize(1);
-    Identifier sym = stmt.getSymbols().get(0);
+    assertThat(stmt.getBindings()).hasSize(1);
+    Identifier sym = stmt.getBindings().get(0).getLocalName();
     int startOffset = sym.getLocation().getStartOffset();
     int endOffset = sym.getLocation().getEndOffset();
     assertThat(startOffset).named("getStartOffset()").isEqualTo(27);
@@ -1234,7 +1234,7 @@
     List<Statement> statements = parseFileForSkylark("load('//foo/bar:file.bzl', 'fun_test',)\n");
     LoadStatement stmt = (LoadStatement) statements.get(0);
     assertThat(stmt.getImport().getValue()).isEqualTo("//foo/bar:file.bzl");
-    assertThat(stmt.getSymbols()).hasSize(1);
+    assertThat(stmt.getBindings()).hasSize(1);
   }
 
   @Test
@@ -1242,7 +1242,7 @@
     List<Statement> statements = parseFileForSkylark("load(':file.bzl', 'foo', 'bar')\n");
     LoadStatement stmt = (LoadStatement) statements.get(0);
     assertThat(stmt.getImport().getValue()).isEqualTo(":file.bzl");
-    assertThat(stmt.getSymbols()).hasSize(2);
+    assertThat(stmt.getBindings()).hasSize(2);
   }
 
   @Test
@@ -1278,10 +1278,10 @@
     List<Statement> statements =
         parseFileForSkylark("load('//foo/bar:file.bzl', my_alias = 'lawl')\n");
     LoadStatement stmt = (LoadStatement) statements.get(0);
-    ImmutableList<Identifier> actualSymbols = stmt.getSymbols();
+    ImmutableList<LoadStatement.Binding> actualSymbols = stmt.getBindings();
 
     assertThat(actualSymbols).hasSize(1);
-    Identifier sym = actualSymbols.get(0);
+    Identifier sym = actualSymbols.get(0).getLocalName();
     assertThat(sym.getName()).isEqualTo("my_alias");
     int startOffset = sym.getLocation().getStartOffset();
     int endOffset = sym.getLocation().getEndOffset();
@@ -1299,14 +1299,14 @@
     List<Statement> statements =
         parseFileForSkylark(String.format("load('//foo/bar:file.bzl', %s)\n", loadSymbolString));
     LoadStatement stmt = (LoadStatement) statements.get(0);
-    ImmutableList<Identifier> actualSymbols = stmt.getSymbols();
+    ImmutableList<LoadStatement.Binding> actualSymbols = stmt.getBindings();
 
     assertThat(actualSymbols).hasSize(expectedSymbols.length);
 
     List<String> actualSymbolNames = new LinkedList<>();
 
-    for (Identifier identifier : actualSymbols) {
-      actualSymbolNames.add(identifier.getName());
+    for (LoadStatement.Binding binding : actualSymbols) {
+      actualSymbolNames.add(binding.getLocalName().getName());
     }
 
     assertThat(actualSymbolNames).containsExactly((Object[]) expectedSymbols);