added better support for set theory
refactored the set of visitors in the document module. there now is a generic visitor that takes a set of parsers as inputs. Parsers are combined with whether they apply to commands or environment, what is the name of the environment or command they correspond to and how many arguments they require. This way, a big part of the parsing is relocated into the generic visitor