enable some asynchronous logging

AsyncRawSocketSender is just a wrapper around RawSocketSender that does its work in a separate thread.

also added a factory method to create a logger with its own sender, and moved from using a synchronized method to using a synchronizedMap for the loggers.