fix types to avoid unnecessary casts
simplify implementation of phrase combinator
provide mapr helper function for consistency with Choice
clean up and unify frontend code and error reporting code for parsing
fix pattern matching error (regression)
added two tests for false redeclaration errors

Conflicts:

	CTypeChecker/src/test/scala/de/fosd/typechef/typesystem/RedeclarationTest.scala
properly write ignored test instead of comment
changing how CTypes are checked for equality (incl. nested structures)

changing only the quality of ATypes by default and ignoring object, const, and volatile in these comparisons.

this is useful to avoid two complicated separate checks for ATypes and CTypes as long as they are not needed
(defining a recursive AType equality check that ignores CType attributes of nested CFunction and CAnonymousStruct
types is painful, especially for structs)

This fixes the regression problems with redeclaration issues where we were too strict (const modifier
should not make a difference)

Testing did not reveal any issues of this change, but we might be careful since equality is now defined
looser than before
Update README.md
enable error detection
renaming refactoring
rule out many false positives for standard-lib-function return
switch to vaa analysis
merging master