Fix #9: try expressions first, backtrack to definitions 

Before this fix:
```
test.pts:1: Syntax Error
   
  foo : * = Pi T . T;
      ^
  unexpected ":"
  expecting "(", "[", "lambda", "Lambda", "Pi", "if0", "add", "sub", "mul", "div", constant, "$", variable name, "->" or ";"
```
After this fix:
```
test.pts:1: Syntax Error
   
  foo : * = Pi T . T;
                 ^
  unexpected "."
  expecting ":"
```

At some point during the fixing I had fixed the above, but broken just about everything else.

To be sure I didn't do that again, I tested this on existing code with:
```
$ cabal build && dist/build/pts/pts -l ../tsr-experiments/partial-evaluation.lfos && dist/build/pts/pts -l ../tsr-experiments/system-f.lfo && dist/build/pts/pts test.pts
```
Given the nature of the change, this should be enough, but it'd be nice to have better tests.