model improvements
- all model objects now override hashCode() and equals()
- added SourceFile model object representing a Java source file
- some new docs