parser: initial support for attributes like far, near, cdecl, etc

The support is only partial, at least compared to gcc. GCC's attribute
interpretation is very kludgy, at least to my eyes, and it is not
easy (or perhaps even neccessary?) to recreate it.

  #define fastcall __attribute__((__fastcall__))
  fastcall void * func1 ( int );
  void * fastcall func2 ( int );

"Fastcall" seems to work in both cases above, so it acts more like a
storage class, than a qualifier. However it really isn't, because
we might be defining a pointer to a function and then it simply
qualifies the pointer.
parser: compare the ext attributes too when comparing types

This now produces an error as it should:
  int far x;
  int x;
Types: compare the ext attrs when comparing type spec-s
tmp: working on type sizes, alignment, etc