Use a safer fresh name, and construct trees more idiomatically.

These changes were all suggested by @retronym.
Some very small test cases for type lambdas.
Update documentation to make it clear [] => ... is invalid.

As @adriaanm pointed out, the grammar comment was wrong. Type lambdas
require at least one type paramter.

Even though the parser fails to accept `[] => ...` at an earlier point,
I added a bit of error-checking to make sure that we never accept such
a construction (at least until it has an accepted use/meaning).
Merge pull request #73 from non/topic/typelambda-cleanup-v0

Topic/typelambda cleanup v0