Don't check if the job exists if we are going to ignore the result

Now that we're lazy loading builds, calling getBuildByNumber is not cheap.
So evaluate the 'ignore' flag before trying to load the build.
Minor adjustments to 0626f28 (show UpstreamCause recursively).
Another 0626f28 (show UpstreamCause recursively) tweak: indent nested causes in log.
[FIXED JENKINS-15747] Avoid recording too many upstream causes at any depth.
[JENKINS-15747] Comment about possible improvement to console logging.
[JENKINS-15747] Improved fix: not only cap total number of transitive upstream causes but also avoid redundantly storing information about upstream causes listed elsewhere.
Merge pull request #689 from justinsb/perf_lazyload_getdependencychanges

Don't check if the job exists if we are going to ignore the result
Noting #689.
Observed an NPE printed during shutdown.
Observed repeated NPEs printed during shutdown.
java.lang.NullPointerException
	at hudson.model.listeners.RunListener.all(RunListener.java:216)
	at hudson.model.listeners.RunListener.fireFinalized(RunListener.java:196)
	…