including commons-io to bootstrap test classpath
introduced ArtifactId in order to encapsulate the artifact's group, name, and version
using ArtifactId instead of passing around group, name, and version
moved ReaderFactory from Repository to JarArtifact, since the later is the only place a Reader is required
ReaderFactory now accepts an URL
verifying existence of artifact on local cache, before fetching it
introduced ArtifactType enum in order to simplify Repository and RemoteRepository classes
replaced group, id, and version by ArtifactId in Configuration class
using File instead of String to represent local repository