[FIXED JENKINS-22080] NPE if trying to install a plugin from the update center and either the update source or the plugin contains a '.' in its name

(cherry picked from commit f9b0f348d0ff674fe058eb1aa4d609c6e3e962e5)
[FIXED JENKINS-22080] Braindead logic in author of original fix... corrected by same author

(cherry picked from commit 483181c0a1a0fdb1cb435164d8a8bbfd76084016)
[FIXED JENKINS-21969] Performance issue with search box when doing case insensitive searching.

(cherry picked from commit 84e8d011805194578d3b3ccfca060ce5cffbf7eb)
[FIXED JENKINS-19081] Offer the option of downloading metadata directly from the server.
(cherry picked from commit 1ac77750e93f9a1970fecbecdf7f84279d0a62b9)

Conflicts:
	core/src/main/java/hudson/model/DownloadService.java
	core/src/main/java/hudson/model/UpdateSite.java
[JENKINS-19081] Be a bit paranoid and ensure the admin has CONFIGURE_UPDATECENTER before turning off signature checks.

(cherry picked from commit 1262d88289d94c1ee7d6736341ce354e948ceef7)
[JENKINS-19081] @kohsuke prefers that the option to disable signature checks not even be presented unless -Dhudson.model.DownloadService.noSignatureCheck is used.
(cherry picked from commit 54c85007f355dadfbf8b0fc5924ded55f1614280)
[JENKINS-19081] Testing the loadJSON method directly to make sure various JSONP formats are handled.
(cherry picked from commit fb5241451337b2c084d8c7772c1d0552a0cc0169)
[JENKINS-19081] Deleting failing test updateDirectlyWithHtml.
loadJSON does not support parsing HTML.
Nor should it need to, since UC URLs are supposed to be to the JSONP file.
The .html extension is added automatically by downloadService when postBack is supported.
(cherry picked from commit d6b37a94579a0d01359ba393f792fc0823275593)

Conflicts:
	test/src/test/java/hudson/model/UpdateSiteTest.java
	test/src/test/resources/hudson/model/update-center.json.html
[JENKINS-19081] May as well use new DownloadService.loadJSON method here.
(cherry picked from commit 1c99cc1af00eb52f6d9ae1963f9db7c12c1fbb5a)
[JENKINS-19081] Removed DownloadSettings.checkSignature; back to using a plain system property for this.
(cherry picked from commit df9c92e461443415be06743f0f8fc0b3937f2408)