Revert "Revert "Fix handling of interactive/batch users in the QoS filter""

This reverts commit b2d6e5f77f951eb0b692233777d5af2a225bc18e
because two major problems have been resolved by now:

1. The lack of Git/HTTP with SSHD test coverage has been resolved
   and there is one more assertion against double run of request
   cleanups.

2. The request context and cleanup have been decoupled, allowing the
   QoS filter to access the current user without causing a double
   cleanup of the request context.

Change-Id: I2df49f7a21369a37ab21f75909da4f2871185ba8
diff --git a/java/com/google/gerrit/pgm/Daemon.java b/java/com/google/gerrit/pgm/Daemon.java
index 8be8456..8fb208b 100644
--- a/java/com/google/gerrit/pgm/Daemon.java
+++ b/java/com/google/gerrit/pgm/Daemon.java
@@ -580,14 +580,14 @@
 
   private Injector createWebInjector() {
     final List<Module> modules = new ArrayList<>();
-    if (sshd) {
-      modules.add(new ProjectQoSFilter.Module());
-    }
     modules.add(RequestContextFilter.module());
     modules.add(RequestMetricsFilter.module());
     modules.add(H2CacheBasedWebSession.module());
     modules.add(sysInjector.getInstance(GerritAuthModule.class));
     modules.add(sysInjector.getInstance(GitOverHttpModule.class));
+    if (sshd) {
+      modules.add(new ProjectQoSFilter.Module());
+    }
     modules.add(RequestCleanupFilter.module());
     modules.add(AllRequestFilter.module());
     modules.add(sysInjector.getInstance(WebModule.class));