add a queue for YP add/remove/touch

It is possible that a deadlock can occur with source locks between the YP thread
retrieving updated stats and the yp_add etc being called with the source still locked

The queue is now added to and processed by a one-shot thread, this thread applies
those changes like before but does it without the source lock preventing the deadlock