Using custom bnfc which generates AST nodes with source positions

[Fork of BNFC](https://github.com/juodaspaulius/bnfc) now generates AST types with Span, which represents the position of the node in the original source file. Because of that we can eliminate grammar rewriting, patching of the results of BNFC, Alex, and Happy, and, most importantly, the duplication of the AST node types (e.g., Clafer without position and PosClafer).