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 
Note:

These days, I'm reading Effective Modern C++ and realizing that lambdas are as good or better than bind in every case in C++14 and almost every case in C+11.

(They're better when you're passing the lambda in as a templated parameter, and otherwise work out exactly the same...)

For my own practice, the lambda would be:

    [=](const boost::system::error_code& error, int signal_number) 
    { 
        signalled(error, signal_number); 
    }

Not clear whether that's better than the bind or not.  :-)