Provide syntax for type lambdas.

This is a squashed version of the commits from #70.
I think this should say something like: (accepting empty `[] => Type` left as exercise to committer :-))
```
`[' VariantTypeParam {`,' VariantTypeParam} `]'] `=>' Type
```