add support for more entities

List of recognized entities is extended with:
  - operators - tags for operators are reported
  - operator type constructors (e.g. g :: (f :**: a) z -> z)
  - infix types (e.g. g :: f `Foo` a -> a)
  - operator constructors (e.g. Expr :+: Expr)
  - infix constructors (e.g. Expr `Add` Expr)
  - strict fields (e.g. Cons !a (List a))
add more tests, change tests for operators

Operators are tokenized as '(', *, ')' sequence of tokens,
and it seems to be useful in pattern-matching.