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.
Pushes the output of InterruptedExceptions to debug log level

This is a companion to https://github.com/scala-ide/scala-ide/pull/481 in the sense that testing this PR revealed InterruptedExceptions being treated and passed in the askOption exception capture mechanism, in very long documentation requests.
This logs such exceptions at debug level, and hints at issue in comments.
Revert "Two new profiles for supporting legacy and new sbt dependencies"

This reverts commit 633e0fe41868b7a47842f5f9feaa815812840375.
Removed duplication of ${sbt.version} value in Scala profiles
Merge pull request #516 from dragos/issue/thread-safe-source-files-1001859

Fix caching of SourceFiles
Merge pull request #541 from huitseeker/suppress-interrupted-exception

Pushes the output of InterruptedExceptions to debug log level
Merge pull request #548 from dotta/issue/remove-sbt-profiles

Issue/remove sbt profiles