Improve cache logic (for ~/.m2 use)

Remote downloads now cache their jars to the users
~/.m2/repository for use in subsequent runs. With
this in place, offline builds will succeed as long
as one build has taken place before going offline.