Moving MDC implementation to the new approach. Fixes #3671

* It's now implemented with a var in the adapter which keeps the MDC state
* A separate trait DiagnosticActorLogging is introduced to mixin this feature in Actors
* Loggers with this feature aren't thread safe, so a new factory is added for ensuring it's only created from inside an Actor
* The code is clearer now as empty Map is used instead of Option