[JENKINS-16956] Make BuildTrigger.execute pay attention to build permissions, rather than checking the configuring user.
[JENKINS-16956] More compatible behavior: if no QIA’s are configured yet, fall back to running as SYSTEM.
Also make a best effort to issue a warning in the log if downstream builds might skipped due to lack of authentication;
or if downstream build permissions might not be checked due to legacy behavior.
Documenting expectations of build steps needing specific authentication.
Introduced a QueueItemAuthenticator overload taking Task.
And moving the permissions checks in BuildTrigger from being hardcoded in execute to being overridable in Dependency.
This has two benefits:
· We can restore the previous form validation logic predicting whether Item.BUILD will be available.
· A (true) Trigger could check Item.READ on the upstream project
  under the authentication that the downstream project would have if it were to be built.
  (This part is not yet implemented; probably will want to make this replace the current pseudotriggers.)
Merge branch 'master' into BuildTrigger-auth-JENKINS-16956
p:config-upstream-pseudo-trigger is actually applicable to AbstractProject, not only Project.
Replacing pseudoUpstreamTrigger with ReverseBuildTrigger.
Merge branch 'master' into BuildTrigger-auth-JENKINS-16956
Test of JENKINS-13502 fix is obsolete since we no longer check permissions when configuring triggers.
Some mistakes turned up by FindBugs and BuildTriggerTest stack traces.
No sense in spending ~20s running HtmlUnit to verify code which has since been deleted anyway (configuration-time ACL checks).
Unnecessary and misleading for a QueueItemAuthenticator to be a @TestExtension.
(It may have a @TestExtension QueueItemAuthenticatorDescriptor if one is needed.)
Introduced MockQueueItemAuthenticator as a convenience.
Properly testing ReverseBuildTrigger, and refining what information is displayed in build logs.
[FIXED JENKINS-16956] Noting merge of #1172.