pep8
group lex and yacc rules into classes in ltl2ba interface

in the future these may be derived from a common parent class as the Lexer and Parser in spec.plyparser
add __init__ and parse methods to Lexer and Parser
use strings for formulas guarding BA edges, instead of ASTs

because:

- creating a small AST for each edge formula is an overkill, considering that further syntactic manipulation is unlikely.

- creating multiple ASTs within the ltl2ba output parser requires context sensitivity, and would complicate the parser unnecessarily.

- if any conversion to a different syntax is needed, then just iterate over the edges and use the LTL parser in spec.plyparser. This leads to cleaner design and separation of concerns.

- using strings decouples the ltl2ba interface from spec.

- the loaded formulas guarding edges are converted to python syntax, so that they can be readily evaluated or compiled to python code. This allows iterating over all edges, compiling the expressions once, then using them during construction of a product automaton.