NEXUS-6359: Fix intermittent MDC pollution on challenge

By using ApplicationStatusSource only once to grab app
version and reuse the version when client challenged.
NEXUS-6356: RUT Realm might mis-idenfity user

As searchUsers were initially implemented for UI user search
use case, where "prefix search" is done.
Merge pull request #425 from sonatype/NEXUS-6359-intermitted-mdc-pollution-on-challenge

NEXUS-6359: Fix intermittent MDC pollution on challenge
Merge remote-tracking branch 'origin/master' into NEXUS-6356-rut-misidentification
NEXUS-6356: Fixing the IT

As this change fixed another RUT problem, and IT was
expecting 403 for "unknown" user. But this is wrong,
as unknown users should get 401 and not 403.

This was caused by the fact that old RUT realm checked
that set returned by SecuritySystem#searchUsers
is null. But that method never returned null
but empty set instead. So to say, if request
had RUT header set, it was taken as logged in
automatically, but maybe with empty set
of permissions.
NEXUS-6486: Do not create status checker threads non-proxies
Merge pull request #426 from sonatype/NEXUS-6356-rut-misidentification

NEXUS-6356: RUT Realm might mis-idenfity user
NEXUS-6485: Optimizing Local discovery

Instead of walking whole directory, we do walk only
the needed depth.

As a consequence, potentially including empty
directories as well.
Merge pull request #429 from sonatype/NEXUS-6486-thread-creation

NEXUS-6486: Do not create status checker threads non-proxies
Merge pull request #430 from sonatype/NEXUS-6485-local-discovery-walk

NEXUS-6485: Optimizing Local discovery
Merge remote-tracking branch 'origin/master' into timeline-kazuki