We must join threads before completing ::shutdown,
because otherwise these threads might try to use
torn-down resources like the objecter.
The replay/recovery threads may be blocking on
journaler calls like wait_for_readable, so we
must signal them using Journaler::shutdown. In
order for that to be safe, we must also protect
the assignment of ::journaler from the threads
using the mds_lock.
Fixes: #11985 Signed-off-by: John Spray <john.spray@redhat.com>