NEXUS-6177: asExpired should circumvent NFC

And on request outcome, NFC will be updated by
either removing the entry if remotely found, or
updating the entry.
NEXUS-6178: Pass over the asExpired flag

The query string should be passed over, to ensure
that latest proxied item is received.
NEXUS-6177: remoteOnly and asExpired should be honored non-anons

As these two actually makes Nx perform remote request, hence might
be misused by malicious anon user.
Merge remote-tracking branch 'origin/master' into as-expired-fixes
NPE prevented remote access

As in OSS nothing appends query string, and StringBuilder
constructor invoked with null NPEs
Do not swallow runtime exceptions.

Like the NPE fixed by previous commit. This code
made it completely absent from logs.
Force parameters.

Those were the old "isLocal", "isRemote" and "asExpired".

Introduced "force" query parameter that might have values
"local", "remote" and "expired".

Also, restlet1x code "detached" from new content related
classes, and they remain unchanged as regarding these flags.
Merge branch 'master' into as-expired-fixes
Fixed client wrt changed force directives

Also, the routing related ITs were affected, as they
used these directives.
Merge remote-tracking branch 'origin/master' into as-expired-fixes

Conflicts:
	components/nexus-core/src/main/java/org/sonatype/nexus/proxy/storage/remote/httpclient/HttpClientRemoteStorage.java
Moved constants used by content plugin only

Into the content plugin.
Removed constants import
add filter to strip out WWW-Authenticate headers in responses when request has "X-Requested-With: XMLHttpRequest" header to avoid browser BASIC auth dialogs.
extract method from anonymous class for testing
notes
add basic sanity check of omission logic
tidy stupid default param name that annoys me
notes
Do not swallow runtime exceptions

This is fix for the original commit
618bc6d2f262b37d40e3fbc3491952a6455834a6

The intent is to not allow AbstractProxyRepository
to swallow runtime exceptions and not have any
trace of them. The previous commit was done
as at one moment my code changes introduced
NPE in RRS, but it went completely unnoticed
and was revealed only by debugging the code
as nothing in logs showed by remote
retrieval failed.

This change should make it visible
from logs, when we deal with cases like
that, and should allow us early detection
of problems like those above, but also
should make problem detection on live instances
easier, without the need to run Nx in
DEBUG mode.
Merge remote-tracking branch 'origin/master' into as-expired-fixes