Only populate lookup widget menus asynchronously

Problems:
* The previous design was to clear the menu while waiting for data from
  the server, so we would "populate" immediately while there were no
  matching items, and then again when the data came back. This cause the
  menu to flash open and closed as you typed, which was really annoying
  and buggy looking.

Solutions:
* Return a deferred object when getting menu items instead of an array,
  and always resolve it asynchronously, event in cases where the result
  can be pulled from cache.

Change-Id: Ic94fb1c1a888c99a4376504abffb0ac0f3aa7791
Merge "Only populate lookup widget menus asynchronously"