Add async2

It requires less boilerplate than async.
Convert timer to async2
Refactor http middleware test
Convert tcp to async2
Rename async2 to async