Updating pattern matching and changing PTs in CLS

Featuring:
- pattern matching up to syntax of type patterns
- changing syntax of parameterized types from T:[A, B, C] to T[A, B, C] – dropping indexed expressions to simplify the overall syntax + unified with update expressions: `a[b]` & `a[b] = c` into `a(b)` & `a(b) = c`, so that lists and dictionaries become actually function applications from the indexing value (key) to the mapped value.