CParser.m4.y: support strings as attribute names

This is our own extensions. The motivation is as follows:
We want to use gcc-style attributes to encode things like
far/near/huge pointers on x86 and xdata/xcode/bit attributes
on 8051. (Yes, not terribly important platforms, but important
for making sure the compiler is sufficiently general).

The problem with gcc attribute names is that as identifiers, they are
too subjectable to macro replacement.
Example:

  // Borland C for DOS emulation
  #define far __attribute__((far))

Looks reasonable, but if we still wanted to use the attribute
explicitly, like this:

  char __attribute__((far)) * ptr;

it would be macro-expanded to the obviously invalid:

  char __attribute__((__attribute__((far)))) * ptr;

Using strings instead makes is immune from this problem and has
no shortcomings that I can see:

  // Borland C for DOS emulation
  #define far __attribute__(("far"))
CParser.m4.y: parse basic and extended GCC __asm__
CParser.m4.y: parse GCC asm labels
tmp: working on sizeof/alignof