We must still initialize and clean up the legacy Trigger#timer

(cherry picked from commit da5620a4e8bbe6677b9f73303cf5cc735400576d)
Naming convention

(cherry picked from commit 6e9b7b7e64e601e654f43e3057b369483fa647a9)
Synchronize access to the ScheduledExecutorService so that we can avoid NPE's during failed startup and lazily initialize it safely.

(cherry picked from commit 9471274dcd912d12d8b80aaef28aa14e0733214d)
Null check

(cherry picked from commit 44f6367085a46ed78739db799cf96c9a3d52cf34)
Remove meaningless initialization

(cherry picked from commit c11c6cea34c8af39661ee513998e0e887443f31a)
[FIXED JENKINS-20800] HTML metacharacters not escaped in log messages.
(cherry picked from commit a900b488b527a25009e3536bc94e945f5fbfe4ad)

Conflicts:
	changelog.html
	core/src/main/java/hudson/Functions.java
[JENKINS-20023] Add support for java -jar jenkins-cli.jar help <cmdname>

(cherry picked from commit 6130665e30e952468098283e523d3f6b0f9c3d5d)
[JENKINS-20023] Display detailed CLI command info via Jenkins UI

(cherry picked from commit 99ccd7f7228ae2f846642f23f81ceb1725f61af6)
[JENKINS-20023] Generate usage for CLI commands registered via CLIMethod annotation

(cherry picked from commit 5f712b3c5f2937f9b430ef2a469ef79c129b7384)
[JENKINS-20023] Restrict use of CLIAction

(cherry picked from commit ae7440482a27877fc88416d189ad2137b6dc1eee)
[FIXED JENKINS-8815] Fixed issue where CLI required giving Overall read permission to anonymous.
Added test unit.

(cherry picked from commit a2ff61010e1ee2c1521c94ad26cfe5252bf7aaef)
Tidy up after #1005

(cherry picked from commit d513253d286fbf0f4a828be2f95a0bfa33a2844f)

Conflicts:
	core/src/main/java/hudson/cli/CLIAction.java
	test/src/test/groovy/hudson/cli/CLIActionTest.groovy
Correctly restrict read permission in CLIActionTest.serveCliActionToAnonymousUser()

(cherry picked from commit 9328c42985cd48dbf112fa2db5336f44eec81988)
[FIXED JENKINS-20128]

CLI hits "/cli", so the server needs to respond to this endpoint.

(cherry picked from commit 9f1796e3ea8034e4a45d63e706b1c087b8f7f2e8)

Conflicts:
	changelog.html
	core/src/main/java/hudson/cli/CLIAction.java
[FIXED JENKINS-15757] Disable\Delete "Remember me on this computer" check box in login screen

- Adds an option to the Global Security screen to hide the remember me checkbox
- A crafty user could use their browser to re-insert the form field and thereby get Jenkins to set the
  remember_me cookie on their browser, but this option should cover the 99.9% case.

(cherry picked from commit 69ba2b8d6725b365734a1c96a71dcbae21bc3b1e)

Conflicts:
	changelog.html
[JENKINS-15757] Ignore 'remember me' if disabled in configuration

The previous implementation of 'disable remember me' just removes the
checkbox from the UI. Users still can set the parameter using a web
browser extension, or patch the login page using a Greasemonkey script
and keep using the feature. And just after the feature is enabled, users
still might be able to use it if they loaded the login page early.

This change prevents that by checking the current configuration and, if
'remember me' is disabled, ignoring any headers set.

(cherry picked from commit 2d9dec951ecb91608ae1644e5c988e8e8734d4f0)
[JENKINS-15757] Add tests

A new test for the existing 'Remember me' functionality that verifies that
the cookie is set, and a new test showing that, even if requested by the
user, no cookie will be set, if 'Remember me' is disabled in the security
configuration.

(cherry picked from commit 9ed2ed5fd90de8930802090cb7d0ffd0f996620c)
[FIXED JENKINS-16936] Added SecureRequester extension point.
(cherry picked from commit acff33106e56f9ee1d3da79a06f794151f17798d)

Conflicts:
	changelog.html
Restrict new API
Why did these tests have timeouts?
Seems to have caused spurious timeout errors.
https://jenkins.ci.cloudbees.com/job/core/job/jenkins_main_trunk/1748/testReport/junit/hudson.scheduler/CronTabEventualityTest/testFirstSundayOfMonthWillBeEventuallyTriggeredWithinOneMonthAndOneWeek_0_/
java.lang.Exception: test timed out after 1000 milliseconds
	at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
	at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:242)
	at java.io.File.exists(File.java:772)
	at sun.misc.URLClassPath$FileLoader.getResource(URLClassPath.java:1072)
	at sun.misc.URLClassPath.getResource(URLClassPath.java:199)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:358)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at hudson.scheduler.CronTab.set(CronTab.java:87)
	at hudson.scheduler.CronTab.<init>(CronTab.java:83)
	at hudson.scheduler.CronTab.<init>(CronTab.java:66)
	at hudson.scheduler.CronTabEventualityTest.checkEventuality(CronTabEventualityTest.java:113)
	at hudson.scheduler.CronTabEventualityTest.testFirstSundayOfMonthWillBeEventuallyTriggeredWithinOneMonthAndOneWeek(CronTabEventualityTest.java:109)
(cherry picked from commit 66805b7463230da6512306b84485700aea83f349)