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`.
If we use `[]` as a default parameter value, this is never mutated, meaning that it can be evaluated on function definition just fine. The `list` is treated as an immutable list which is only assigned once, during initialization, and never again written to. So I think your concern does not apply here.