SRAMP-609, SRAMP-547, SRAMP-466: ArtifactBuilder

Really, SRAMP-609 implicitly corrected the other issues.  However, keeping the commits separate for readability.  If this ever needs backported, *all* the commits should be taken in one shot -- don't attempt to separate them.
Ya, this is an area that could be improved later.  The tough part is that AbstractArtifactBuilder needs to provide a default collection for the derivedArtifacts, but subclasses can override that with something more specific.  For XSD and WSDLs, that's IndexedArtifactCollection.  The only other one is WebXmlArtifactCollection, which is simply part of a demo.  For all others, the simple ArrayList in AbstractArtifactBuilder is used.

That could be made more generic to have one single type of IndexedArtifactCollection that could potentially cover all cases...