Rewrite remote oracle wrapper to reduce requests

Gerrit was sending a suggest request roughly for every key typed.  On
a slow connection (or a slow server) this behavior caused a lot of
suggestion requests whose results were immediately useless when the
next key was processed.

Wrap the reviewer suggestion with RemoteSuggestOracle, which allows at
most one remote query to execute at a time.  Intermediate queries are
discarded, reducing the number of remote calls made by the UI when the
user is typing faster than the network+server can process.

This somewhat improves suggestion experience for reviewers on a slow
site.  Typing "John D<enter>" is now more likely to complete to a
person named "John Doe" rather than "John Alberts", which was being
selected from a stale result based on the "John" suggestion list.

Change-Id: I9bfaa2fe5bd92bbbf38c086f7c909761854d718d
7 files changed