Make sure that change log annotation cannot result into exception

Although javadoc for ChangeLogAnnotator#annotate() states that any exception should be caught in this method and it should return normally, some implementation don't respect it or e.g. in case of missing some dependecy (resulting into NoClassDefFoundError) plugin itself can hardly ensure that no exption is thrown. We should ensure it on the core level.
[JENKINS-16215] Avoiding unnecessary downloads in FilePath.installIfNecessaryFrom.

The updated version uses the locally cached timestamp, '.timestamp', to set the
'If-Modified-Since' header. 304 Not Modified responses are dealt with by
aborting the installation.
Add regression test for SurefireArchiver test mojo detection [JENKINS-8334]
[FIXED JENKINS-8334] use heuristics to detect test-mojos instead of relying on hard-coded plugin names
Additional testcase
Host name must not be null (cloud impl should have handled such errors earlier).
Record start time of mojo execution in MojoInfo and use that information
to determine which test result files belong to the mojo execution
[SECURITY-49] Deprecating Jenkins.getSecretKey()

We are replacing it by the ConfidentialStore class and the
ConfidentialKey class, which provides purpose-specific confidential
information that are separated from each other.

In this way, not all eggs are in one basket, and in case of a
compromise, the impact will contained.

Also replaced several insecure use of digest(secret|messsage) or
digest(message|secret) by HMAC.
[SECURITY-49] added a tool to re-key secrets

As an AdministrativeMonitor, it shows up in the manage Jenkins UI, and
allows the administrator to run a re-keying operation.
[SECURITY-49] Backing off from @Extension-based discovery.

This is because we discovered some plugins that use Secret early on in
the initialization.
[SECURITY-49] mark secret.key generated by post SECURITY-49 Jenkins.

If JENKINS_HOME is created by a post SECURIT-49 Jenkins (LTS, and other
variants), then there's no need to alarm the user.
[SECURITY-49] actively invalidate bad API tokens.

If the user still has the API token that's generated from secret.key,
don't accept that.

Hopefully this is the last fix
Use old method to find report files for a mojo. New method still needs some more testing.
Refactored detection of test mojos to simplify SurefireArchiver class [JENKINS-8334]
Adding changelog
[maven-release-plugin] prepare release jenkins-1.497
[maven-release-plugin] prepare for next development iteration
updated changelog for release
updated changelog as a part of the release
merged back the RC branch