Fix source file caching in presentation compiler.

Removed the sourceFile map altogether. Caching is performed now at the
level of `InteractiveCompilationUnit`, who may keep the last SourceFile
instance. The default implementation does not cache anything, but
`ScalaCompilationUnit` does.

In the process, removed a number of `withSourceFile` methods on project
and presentation compiler classes. These may break plugins.

Fixed #1001859
Add equals/hashCode for ScalaProject.
Added back `withSourceFile` and marked them @deprecated.
Re-enabled PC tests that pass now.
Reviewer's comment.
Merge pull request #516 from dragos/issue/thread-safe-source-files-1001859

Fix caching of SourceFiles