move call semantic checks into an own function

This also slightly changes the reported position for call errors to the
point of the opening brace.
rename lengthof() to ARRAY_SIZE()

this is to be consistent with libFirm code
change -mXXX flag handling

we now collect the flags upfront and pass them to the firm backend after
all other options. This ensures that we now the correct firm backend and
can translate an option like "-mfpmath=sse" into "-bia32-fpmath=sse".
support typegeneric builtin, add __sync_val_compare_and_swap
fix invalid clobber error