adapt interface change from llvm::MemoryBuffer::getFileOrSTDIN
Parse variable declarations into VarDeclStmt.  Rewrite the AST hierarchy.

In order to keep track of the semicolon after the end of a statement, the
fuzzy ast hierarchy was remodelled.  Stmt only hold real statements,
expressions and other ast elements are now subclasses of ASTElement.

Move ast printer from FuzzyParser.cpp to FuzzyASTPrinter.cpp to reduce the file
complexity.