Ditch timeouts for sync tasks.

Each call to timeout method creates a new thread and executes the block
on that thread. This is unneccessary because async tasks already execute
on a thread pool thread and handle timeouts and sync tasks are not
interrupted when timeout elapses anyway. One should not use a sync task
for a long running task.
Merge pull request #1 from akalini/alexey.ditch_sync_timeouts

Ditch timeouts for sync tasks.