rewrite router async logic
add back metrics
actually use the metrics emitting listener
remove debug code
address cr
fix unnecessary error messages
Merge pull request #651 from metamx/rewrite-async

rewrite router async logic