Thread safety.

All public methods are wrapped in @synchronized (Logger methods with loggerKey as a key, all
other method with "self" as a key).
Merge branch 'thread-safety' into development