ao_coreaudio: use 0 as timeout for CFRunLoopRunInMode

Handle all pending events and exit instead of waiting. When there are lots of
input events (for example, scrolling with trackpad), timeout can add up
to make a huge frame delay. In my tests, if I scroll fast enough, that loop
would never exit.
cocoa_common: handle all pending events instead of just one
cocoa_common: improved trackpad scrolling