LoadingMessageSourceProvider: fix potential "null sources in expiry" bug

Make an AtomicBoolean whose initial value is set to true if the expiry timeout
is 0, ie no timeout.

In .getMessage(), if we read it as being false, enable expiry. This way it is
enabled only once, and only if necessary.