model improvements:
- SourceFile now has a fromFile(File file) method
- Exploded jar no longer blows up when it's hashCode() is called