Fix Resolver shutdown behaviour

* Add Resolver prefix to logging.
* Fix AsyncObject::removeReference() logic.
* Fix work remaining logic.

I spotted this while playing around with Application Stoppable behaviour. 
Reviewers: @nikb @vinniefalco 
@HowardHinnant I'm advocating that completion handlers should be member or free functions with names, and not lambdas / anonymous functions. Or that a completion handler should be an instance of a class, with an overloaded `operator()`. I'm saying that "always use lambda instead of bind" is bad advice. It came from Scott's new "Even More Effective C++" or whatever its called. Absent from the book is any treatment of asio completion handlers.