Cleanup MenuRunner API

All menus have switched over to MenuRunner::ASYNC. The non-async code path has
also been removed. Due to this the flag is redundant. This change removes its
usage throughout the code base.

MenuRunner::RunMenuAt features a return type to declare if a menu was deleted
or not during execution. This was used for cleanup relating to the nesting of
message loops. With the nested message loop code path gone this is no longer
necessary. No call site was actively performing different functions on this.

Now all callsites are notified via MenuDelegate::OnMenuClosed, or a callback
provided to MenuRunner, when a proper closure occurs.

Deletion during a run is only triggered by either an entire system shutdown, or
when callsites explicitly delete the menu when executing a menu item. All
callsites have been updated to cleanup properly when deleting the menu.

With the closing logic cleaned up MenuRunner::RunMenuAt return is no longer
needed. So this change removes it.

TBR=ben@chromium.org
TEST=manual and test suites
BUG=557130

Review-Url: https://codereview.chromium.org/2790773002
Cr-Commit-Position: refs/heads/master@{#466469}
63 files changed