Upgrade to gerrit v2.10

Looks like we need to move away from @Listen and have our own guice module.
diff --git a/gerrit-owners-autoassign/BUCK b/gerrit-owners-autoassign/BUCK
index 2678ed9..516426f 100644
--- a/gerrit-owners-autoassign/BUCK
+++ b/gerrit-owners-autoassign/BUCK
@@ -11,6 +11,7 @@
     'Implementation-Title: Gerrit OWNERS autoassign plugin',
     'Implementation-URL: https://github.com/vadims/gerrit-owners',
     'Gerrit-PluginName: owners-autoassign',
+    'Gerrit-Module: com.vmware.gerrit.owners.common.AutoassignModule',
   ],
   deps = [
     '//plugins/gerrit-owners/gerrit-owners-common:common',
diff --git a/gerrit-owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/AutoassignModule.java b/gerrit-owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/AutoassignModule.java
new file mode 100644
index 0000000..eab2403
--- /dev/null
+++ b/gerrit-owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/AutoassignModule.java
@@ -0,0 +1,13 @@
+package com.vmware.gerrit.owners.common;
+
+import com.google.gerrit.extensions.events.GitReferenceUpdatedListener;
+import com.google.gerrit.extensions.registration.DynamicSet;
+import com.google.inject.AbstractModule;
+
+public class AutoassignModule extends AbstractModule {
+  @Override
+  protected void configure() {
+    DynamicSet.bind(binder(), GitReferenceUpdatedListener.class)
+        .to(GitRefListener.class);
+  }
+}
diff --git a/gerrit-owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/ReviewerManager.java b/gerrit-owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/ReviewerManager.java
index d7ba7a3..1d2e307 100644
--- a/gerrit-owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/ReviewerManager.java
+++ b/gerrit-owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/ReviewerManager.java
@@ -4,11 +4,13 @@
 package com.vmware.gerrit.owners.common;
 
 import com.google.gerrit.common.errors.EmailException;
+import com.google.gerrit.extensions.api.changes.AddReviewerInput;
 import com.google.gerrit.extensions.restapi.RestApiException;
 import com.google.gerrit.reviewdb.client.Account;
 import com.google.gerrit.reviewdb.client.Change;
 import com.google.gerrit.server.CurrentUser;
 import com.google.gerrit.server.change.ChangeResource;
+import com.google.gerrit.server.change.ChangesCollection;
 import com.google.gerrit.server.change.PostReviewers;
 import com.google.gerrit.server.project.ChangeControl;
 import com.google.gerrit.server.project.NoSuchChangeException;
@@ -29,25 +31,29 @@
 
   private final ChangeControl.GenericFactory changeControlFactory;
 
+  private final ChangesCollection changesCollection;
+
   @Inject
   public ReviewerManager(Provider<CurrentUser> currentUserProvider,
                          Provider<PostReviewers> postReviewersProvider,
-                         ChangeControl.GenericFactory changeControlFactory) {
+                         ChangeControl.GenericFactory changeControlFactory,
+                         ChangesCollection changesCollection) {
     this.currentUserProvider = currentUserProvider;
     this.postReviewersProvider = postReviewersProvider;
     this.changeControlFactory = changeControlFactory;
+    this.changesCollection = changesCollection;
   }
 
   public void addReviewers(Change change, Collection<Account.Id> reviewers) throws ReviewerManagerException {
     try {
       PostReviewers postReviewers = postReviewersProvider.get();
       ChangeControl changeControl = changeControlFactory.controlFor(change, currentUserProvider.get());
-      ChangeResource changeResource = new ChangeResource(changeControl);
+      ChangeResource changeResource = changesCollection.parse(changeControl);
 
       // HACK(vspivak): Using PostReviewers is probably inefficient here, however it has all the hook/notification
       // logic, so it's easier to call it then to mimic/copy the logic here.
       for (Account.Id accountId : reviewers) {
-        PostReviewers.Input input = new PostReviewers.Input();
+        AddReviewerInput input = new AddReviewerInput();
         input.reviewer = accountId.toString();
         postReviewers.apply(changeResource, input);
       }
diff --git a/gerrit-owners/BUCK b/gerrit-owners/BUCK
index c425c65..009de04 100644
--- a/gerrit-owners/BUCK
+++ b/gerrit-owners/BUCK
@@ -33,6 +33,7 @@
     'Implementation-Title: Gerrit OWNERS plugin',
     'Implementation-URL: https://github.com/vadims/gerrit-owners',
     'Gerrit-PluginName: owners',
+    'Gerrit-Module: com.vmware.gerrit.owners.OwnersModule',
   ],
   deps = [
     ':gerrit-owners-lib',
diff --git a/gerrit-owners/src/main/java/com/vmware/gerrit/owners/OwnersModule.java b/gerrit-owners/src/main/java/com/vmware/gerrit/owners/OwnersModule.java
new file mode 100644
index 0000000..e2c90c4
--- /dev/null
+++ b/gerrit-owners/src/main/java/com/vmware/gerrit/owners/OwnersModule.java
@@ -0,0 +1,14 @@
+package com.vmware.gerrit.owners;
+
+import com.google.gerrit.rules.PredicateProvider;
+import com.google.gerrit.extensions.registration.DynamicSet;
+import com.google.inject.AbstractModule;
+
+
+public class OwnersModule extends AbstractModule {
+  @Override
+  protected void configure() {
+    DynamicSet.bind(binder(), PredicateProvider.class)
+        .to(OwnerPredicateProvider.class);
+  }
+}