Fix #659: Abstract classpath builders to allow for virtual filesystems