store __attribute__ specifiers in AST

crosscutting change to store __attribute__ specifiers in AST that were previously discarded during parsing. Attempting to pretty print them as well.

This is a wide ranging change, not well tested. Since attributes were previously not used it should not introduce new problems.
fix compile error after AST node changes
remove ifdeftoif implementation and its tests

Ifdeftoif was previously migrated to an own repository
(see joliebig/Hercules).
remove decluse tests

Decluse testing is maintained within the previously
migrated hercules repository, which contains the
ifdeftoif implementation.
extend support for gnu assembler instructions

So far assembler instructions can be parsed, but they are not properly
pretty printed. The reason is that within the AST node, some parts of
assembler instructions are represented as Any. Without proper pretty
printing, any subsequent handling of source (e.g., running gcc) may
fail.
minor lexer/parser changes
proper pretty printing of comma separated AST nodes

List elements are pretty printed with ',' as separation element. This
patch computes annotations for ',' based on the annotations of list
elements. This ensures that all variants of pretty printed lists are
syntactically correct.
add some __builtin functions

Changes in the standard library on recent systems require to add
some __builtin functions.
fixing nullpointerexception in decluse

Avoid referencing uninitialized members during trait initialization.
use position information of function identifier

Not all AST nodes have proper position information. In the case of
functions and linking we use the position information of the function's
identifier, instead of the function itself.
add support for linking without elimination

TypeChef's standard linker removes linked functions from the interface.
Applications such as transformations require a full linking interface in
for their setup. The change adds a function that does not eliminate
linked functions.
update decluse implementation
Merge pull request #32 from ckaestne/next

major affort to bring changes from ajanker fork back to original repo

(sorry for the long delay in the review)