Issue 3444: Autocomplete is too agressive

Matches beginning of:
- in Group: matches beginning of group name or group alias.
- in People: matches beginning of username or first or last name.

- Autocomplete only replaces input with first dropdown item if input is a
  prefix for the item.
- COMMA key no longer triggers autocomplete; TAB and ENTER keys only work.
- Delete key (not backspace) no longer hides autocomplete dropdown.
- matches dropdown hide after a previous match has been made on the input box.
- Reverted delay values.

Issues reported:
https://code.google.com/p/reviewboard/issues/detail?id=3622
https://code.google.com/p/reviewboard/issues/detail?id=3629
https://code.google.com/p/reviewboard/issues/detail?id=3620

Testing Done:
- No unit tests currently exist for ui.autocomplete.js
- Test input that matches beginning of group name or group alias. Making sure
  each group has a unique name and alias so it's only matching one field.
- Test input that matches beginning of username or first name or last name.
  Making sure each user has unique, username, first and last name so it's only
  matching one field.
- Header bar search tested and still works as expected. Matching one of group
  name, group alias, username, first name or last name.

With 2 users and 2 groups (John and Johndone), tested the following cases on
Windows 8.1 with Chrome 38, Firefox 32, and IE11, and on Linux Mint 17 (Ubuntu
14) with Chromium 37 and Firefox 32:
- type 'John' (wait for dropdown), type 'd', hit TAB/ENTER quickly, does not
  autocomplete since the dropdown hasn't updated due to delay.
- type 'Jo' (wait for dropdown), hit TAB/ENTER, autocompletes to John.
- type 'Johnd' (wait for dropdown', hit TAB/ENTER, autocompletes to Johndoe,
  remove 'ndoe', hit TAB/ENTER, autocompletes to John.
- Comma acts like regular input, does not trigger autocomplete. Starting to
  type another name after a comma behaves normally.
- TAB acts as normal when autocomplete dropdown not present (jumping through
  elements)
- ENTER act as normal when autocomplete dropdown not present (hitting OK below
  input field)

Bugs closed: 3444

Reviewed at https://reviews.reviewboard.org/r/6333/
Short-circuit diff patching for moved files with no changes.

The comment for `DiffChunkGenerator.get_chunks()` indicates that moved files
with no changes should be returned as an empty list without actually fetching
source files or applying patches, but this wasn't the case. This change fixes
the conditional to return the empty list.

Testing done:
- Tested a moved file with no changes. Saw that it displayed correctly without
  ever calling out to 'patch'
- Tested a moved+edited file. Saw that it displayed correctly.
- Ran unit tests.

Reviewed at https://reviews.reviewboard.org/r/6655/
Merge branch 'release-2.0.x'