Enable conid as simple pattern

Fix #33

### Parse:
* Split `pattern` rule into `complex_pattern` and `simple_pattern`.
* Add `CONID` to `simple_pattern`.
* Replace `simple_pattern_list` with `simple_pattern_seq`.
* A `complex_pattern` is not allowed to have zero arguments. This solves the ambiguity.

### AST:
* Αllow `Pattern` to have no argument list.

### Parse test:
* Fix regression test.
* Expand testing of `simple_pattern_seq`.
Disagree. Apart from this one, there are no other tests for `simple_pattern_list`. Also, the grammar involving patterns has remained the same up to now. So this wasn't a *regression* test to begin with, it was just a casual test that happened to fail. It was also a bad test, since parsing `Red Red` as `[pattern, pattern]` could pass even if the parser built the pattern list in reverse. Thus, it has to be rewritten anyway.

If you 'd like `TreeNode EmptyNode` + a comment pointing to #33, that's OK. Keeping the only meaningful test for pattern lists as a half-baked regression test, that doesn't make sense.