Client API support for both sync and async operations. 

All operations now can be called either sync or async. The
sync call simply waits on the future returned from the async
call.