Fixes #1001326

This commit fixes ticket #1001326. Solved the problem by
overriding 'parseTree(source: SourceFile)' in
ScalaPresentationCompiler with an implementation that just
parses the source every time without trying to memorize
anything. Added tests that checked that

  1. You get a new parse tree every time you ask for one
  2. A parse tree should never contain any symbols or types [1]
  3. If you ask for a parse tree and then open the file it shouldn't
     change the parse tree you originally asked for, i.e. property
     2 still holds.

[1] There is an exception to this though. Some of the nodes that
    the compiler generates will actually contain symbols. I've
    chosen to just ignore these special cases for now.
2.9.x compatibility & refinement of symbol check

Had to modify the code a bit to make it compatible
with Scala 2.9.x. Instead of using dependent types
in a method signature I had to wrap the types in a
trait. Instead of using `Tree.forAll` I had to use
`Tree.exists` and modify the body of the predicate
accordingly.

I refined the symbol check so it doesn't match
against `Ident(nme.scala_)` but instead simply ignores
symbols that point to `definitions.ScalaPackage` This
is because `Ident(nme.scala_)` would ignore more nodes
than intended, i.e. `{ val scala = "awesome"; scala }`
would be ignored as well.
Merge pull request #269 from mads379/parsetree-1001326

Fixes #1001326