Explicitly bind RestCollections in modules

This reverts commit 2934302a7d942590d84db7b1b8ec4a17f46af33e
and provides a real fix for the Guice constructor not ready
bug. We should be naming these collection classes explicitly
as being implemented by themselves so Guice doesn't have to
guess about how to create them.

Change-Id: I761bb18ea180b48139aefd1e112e593c4c8517b3
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/Module.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/Module.java
index e44f6070..4507c17 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/project/Module.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/Module.java
@@ -23,6 +23,9 @@
 public class Module extends RestApiModule {
   @Override
   protected void configure() {
+    bind(ProjectsCollection.class);
+    bind(DashboardsCollection.class);
+
     DynamicMap.mapOf(binder(), PROJECT_KIND);
     DynamicMap.mapOf(binder(), DASHBOARD_KIND);
 
@@ -34,9 +37,9 @@
     get(PROJECT_KIND, "parent").to(GetParent.class);
     put(PROJECT_KIND, "parent").to(SetParent.class);
 
+    child(PROJECT_KIND, "dashboards").to(DashboardsCollection.class);
     get(DASHBOARD_KIND).to(GetDashboard.class);
     put(DASHBOARD_KIND).to(SetDashboard.class);
     delete(DASHBOARD_KIND).to(DeleteDashboard.class);
-    child(PROJECT_KIND, "dashboards").to(DashboardsCollection.class);
   }
 }