NEXUS-4916 - add proxy configuration
NEXUS-4968: Proper fix.

In short, not using "millisecond timestamp" for change detection.

In old code, the timestamp was not used at all to get the date
(except in one DEBUG log, but that was irrelevant, as change
date will be same as timestamp of logline it sits on!). The pure
reason of the timestamp was to support "change detection", but
it was wrong, as millisecond resolution is too coarse: think
concurrent changes, or just like in related issue, UT issues
with Windows running on Hypervisor and sleeping less than OS
slice and having JRE "under sleeping". See links in the
issue comments.
NEXUS-4968: Added argument to log message (was missing)
NEXUS-4968: Reshuffle classes to make things simpler

The "Default..." context implementation are moved "forward"
to make all the "Simple..." class use unneeded.
NXCM-3986: Improve logs

There is a complex set of conditions when to log what, when to log
stack traces and when not do log stack traces. This would need a fix
but for now, this change simply makes to log all HTTP 500 Internal
error responses _with_ stack trace, as previously they were logged
without it, and it did not make any sense.

This seems as long outstanding issue, as original commit implementing
this was unchanged for a long time, and it was causing that all
StorageException (that subclass IOException) gets logged _without_
stack trace, that is bad:

Change introduced in:
fcd4ccf26ad3e963d62e6e45ef06b8428f0d7608

We do have server side logs of the NXCM-3986, but as the cause was
not logged (no stack trace), we lost information why the rename
failed (clearly, it was some sort of FS related problem)
NXCM-3986: Preserve original cause
NXCM-3986: Made text handling a bit more concise
NXCM-3986: Removed duplicated if branches

Before, there was a separate handling of StorageException's
that was loosing stack trace. Also, superclass of StorageException
is IOException, and it was logged _with_ stack trace (in the else
branch). But both were creating a response of HTTP 500 internal error
(so, ultimately the only difference was the lack of the stack trace
in case of StorageException).

After this change, the StorageExceptions are handled in same way
as their superclass IOException, and will end up in logs _with_
stack trace too.
NEXUS-5011: Member change detection fixed.

The original implementation was flawed, it was not detecting
the order change among two lists, since it was checking for subset only.
NXCM-4046: Fixing the logback warning at Nexus bundle boot

Nexus WAR contains the logback.xml, but also our "container"
has one too (on server classpath) as Jetty uses logback for
logging too.

The solution is not to take out the logback.xml from WAR,
as in that case we screw users of WAR, but instead, when
we _embed_ our WAR into our container (and have logging
already present on it), we simply leave out the WAR logback
config from WAR as logback is set up already at container
level, and during boot, Nexus will set up logging with it's
own means anyway.

This change modifies the module creating the _bundle_, by simply
leaving out the logback.xml
Support filtering of repositories by user-agent
Support for UA filtering.
Removed left-in-by-mistake printTestName();
[NEXUS-4976] Revert added link to nexus book from log settings screen

Signed-off-by: Alin Dreghiciu <adreghiciu@gmail.com>
Upgrade to Shiro 1.2 (does not include switching to Guice-based configuration)
o [NXCM-4083] Add capability to use a custom 'style' attribute for links in the nav bar sections
Fixes for attribute manager.

UID Attribute manager was "kicked in" too often, as it used
the NexusStateChangeEvent abstract event, and this event is
now parent class of 4 actual events, while the manager should be
"kicked" only on start or new plugin loaded/unloaded event.

Also, manager itself was using injected logger instead of the
helper AbstractLoggingComponent parent.
Tidying up registry logging.

Registry logs about added repositories a bit more than "usual" (adds
content class and main facet name). This was implemented in spaghetti
way by string concats, and that also meant that actual message is not
reusable.

RepositoryStringUtils, helper class meant exactly for stuff like these
is extended, and default registry implementation made to use new method.
NEXUS-4922: Increasing timeouts.

The SO timeout ("socket timeout") is the one that made the regression
in the first place. It was set too low, for 5 seconds, while the
request on server side was processed without any error, but the processing
took 6 seconds and client timeouted with socket timeout (the setSoTimeout
for client).
Use release port allocator plugin 1.2 (that has a fix for logging allocated port number at info level)

Signed-off-by: Alin Dreghiciu <adreghiciu@gmail.com>