Async_timeout reworked

Last days I was preparing a pull request for a new async-timeout version.

The main motivation was the ability to advance the scheduled timeout; e.g. to extend a long-running operation period.

aiohttp has several use cases for such functionality, I’m pretty sure the library is not alone.

If somebody is interested in the review – you are welcome.

New timeout is a little not compatible with 3.x line: the timeout is scheduled in the class constructor, not on entering into context manager block. I hope it don’t break anything.

My plan is publishing 4.0 beta soon, just after finishing the documentation update.
aiohttp 4.0 will switch to the new version, aiohttp 3.x will stick with async-timeout 3.0.