Added Channel#sync - API for it is still in flux
Added timeout kwarg to Channel#sync
Added Channel::SyncHelper to provide #condition to user block in Channel#sync

--HG--
extra : amend_source : 9b3462b39036ed398a1ac34e3fad2a1d5b889176