This commit fixes ticket SI-7026

Hi there,

This pull request fixes SI-7026. I've confirmed that the tests fails
before the patch and that they succeed after. I tried to discuss the
ticket on the ML but no-one seemed interested (It was over christmas),
and given that I've already discussed and fixed the issue in the IDE
I thought it was better just to go ahead and fix the problem ;)

Solved it with an implementation that just parses the source every
time without trying to memorize anything. Added tests that checks
that

1. You get a new parse tree every time you ask for one.
2. You always get a parse tree, never a typed tree.
3. A parse tree should never contain any symbols or types [1].
4. If you ask for a parse tree and then ask for a typed tree it
   shouldn't change the parse tree you originally asked for, i.e.
   property 3 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.