[JENKINS-17236] Initial version of ArtifactManager (no Maven support yet).
Additional comment about appliesTo.
Simply subclassing StandardArtifactManager is probably more intuitive than delegating.
Merge branch 'master' into ArtifactManager-JENKINS-17236
Oops, was deleting artifacts from the wrong build.
Merge branch 'master' into ArtifactManager-JENKINS-17236
Added some more methods to ArtifactManager that look to be needed based on grepping plugin sources for usages of now-deprecated getArtifactsDir.
Most such plugins just need to store or load individual artifacts, and could easily be made to accept an InputStream, and this is easy to support in various implementations, so do that.
A few really expect to get a java.io.File directory that they can play with, but these are the exceptions.
Such plugins will just not work when used on builds with nondefault storage, unless they are rewritten.
Passing in the workspace explicitly means the standard manager can work on any Run.
appliesTo should default to true.
documenting the restrictions about when they can be invoked.
Allowing the object returned from ArtifactManager to be bound under the URL space of build.

DirectoryBrowserSupport is a bit of weirdo, in that its a very intelligent HttpResponse object that creates a whole hierarchy. But most of the time, complex structures are created by a series of POJOs referencing each other. Defining a signature to return HttpResponse prevents this common design pattern.

In contrast, as I wrote in the revised javadoc, one can force a certain HttpResponse during the object traversal by throwing an HttpResponse.

So this new signature can accommodate both cases, so I recommend this over the original signature
Stronger and shorter type signature
type error fix
Revert "type error fix"

This reverts commit 3f0fff9867d34b4bb5df7fafe15e53dc8b8da538.
Revert "Stronger and shorter type signature"

This reverts commit 36049b652856df0db42a7d3b75fe1e485bedbbd9.

3f0fff9 failed to make Run.java compilable; and this commit introduced a rawtypes warning in ArtifactManager.
Provisionally switching back to originally type signatures which at least were accepted by the compiler, if not optimal.
Distinguishing getArtifactManager and pickArtifactManager.
These do different things that should not be conflated.
Merge branch 'master' into ArtifactManager-JENKINS-17236

Conflicts:
	core/src/main/java/hudson/tasks/ArtifactArchiver.java
Merge branch 'master' into ArtifactManager-JENKINS-17236
Merge branch 'master' into ArtifactManager-JENKINS-17236
s/XXX/TODO/g