Add RTL Helpers for increasing and decreasing reference count as well as assigning reference counted class instances to one another.

Note 1: If the offset passed to the decrement function is negative then the object won't be freed (needed for the end of the constructor)
Note 2: If the reference count is negative then reference counting is effectively disabled (needed during call of Destroy to avoid recursion if Self is passed to other functions)

rtl/inc/compproc.inc:
  + add new RTL helper "fpc_refcountclass_decr_ref" for decreasing the reference count of a class and potentially freeing it
  + add new RTL helper "fpc_refcountclass_incr_ref" for incrementing the reference count of a class
  + add new RTL helper "fpc_refcountclass_assign" to assign a reference counted class instance to another whereby the reference count is handled accordingly
rtl/inc/objpas.inc:
  + add locally visible aliases for the RTL helpers


git-svn-id: http://svn.freepascal.org/svn/fpc/branches/svenbarth@28810 3ad0048d-3df7-0310-abae-a5850022a9f2
Add support for manual reference counting of reference counted class instances.

rtl/inc/objpas{h}.inc, TObject:
  + new method "IsRefCounted" to determine whether the class of an instance was declared as "refcounted"
  + new method "RefCount" to determine the current reference count of a class; if it is not reference counted the result is -1
  + new methods "IncRef" and "DecRef" to manually influence the reference count
  + new private method "RefCountOffset" to retrieve the offset of the reference count field using the VMT


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