[layoutng] async layout part 1: Change the API to support async

The implementation is not async yet. I will add the state machine in a second
CL.

R=ikilpatrick@chromium.org,eae@chromium.org
BUG=635619

Review-Url: https://codereview.chromium.org/2281153002
Cr-Commit-Position: refs/heads/master@{#414799}
7 files changed