Extract Awakable from Waiter

This CL extracts simple Awakable interface from Waiter and
rename WaiterList to AwakableList.

This is a preparation for introducing system-integrated
AsyncWaiter.

R=viettrungluu@chromium.org
BUG=377980

Review URL: https://codereview.chromium.org/779503003