Add new tokens for ARC support

tokens.pas:
  + add "weak" token to denote variables/parameters/fields that are not participating in reference counting
  + add "refcounted" token to denote that a class (and its child classes) have reference counting enabled


git-svn-id: http://svn.freepascal.org/svn/fpc/branches/svenbarth@28802 3ad0048d-3df7-0310-abae-a5850022a9f2
Add enum values needed for reference counting support.

symconst.pas:
  + tobjectoption: add oo_is_reference_counted to mark a class as reference counted
  + tvaroption: add vo_is_weakref to denote a variable/parameter/field as not modifying the reference count


git-svn-id: http://svn.freepascal.org/svn/fpc/branches/svenbarth@28803 3ad0048d-3df7-0310-abae-a5850022a9f2
Add support for parsing "weak" directive for variables, fields and parameters.

symdef.pas, tabstractprocdef:
  + add a field retisweak to denote that the result variable is to be considered as weak
  * ppuload: load retisweak from PPU
  * ppuwrite: write retisweak to PPU
pdecvar.pas: 
  + read_var_decls: new function read_weak which ensures that "weak" is only applied to a single variable (like "absolute" or default values) and sets the flag
  * read_var_decls: parse "weak" after "absolute" has been parsed
  * read_record_fields: parse "weak" and set the flag (without error only if it's only one field that gets the flag set)
pdecsub.pas:
  * parse_parameter_dec: parse "weak" and set the flag (without error only if it's only one parameter that gets the flag set)
  * parse_proc_dec: parse "weak" for function and operator results and set the flag
ppu.pas:
  * increase PPU version


git-svn-id: http://svn.freepascal.org/svn/fpc/branches/svenbarth@28804 3ad0048d-3df7-0310-abae-a5850022a9f2