MultiRepos: the `get_youngest_rev` shouldn't trigger a resync.

OTOH, that `self.youngest` value should be "refreshed" once new revisions come in, and not only for the process that actually gets notified.

diff --git a/trac/versioncontrol/cache.py b/trac/versioncontrol/cache.py
--- a/trac/versioncontrol/cache.py
+++ b/trac/versioncontrol/cache.py
@@ -258,7 +258,12 @@
 
     def get_youngest_rev(self):
         if not hasattr(self, 'youngest'):
-            self.sync()
+            db = self.getdb()
+            cursor = db.cursor()
+            cursor.execute("SELECT MAX(" + db.cast('rev', 'int') + ") "
+                           "FROM revision WHERE repos=%s", (self.reponame,))
+            for rev, in cursor:
+                self.youngest = rev
         return self.youngest
 
     def previous_rev(self, rev, path=''):

