Generic type variables

This pull request implements xp-framework/rfc#282 and adds generic type variables.

## Example

```php
#[@generic(self= 'T')]
class Unserializer extends \lang\Object {

  #[@generic(return= 'T')]
  public function newInstance($arg= null) {
    return null === $arg ? $T->default : $T->newInstance($arg);
  }
}
```

## TODO

* [x] Think about improving runtime performance by only adding static type variables to the methods if they're actually used (we're tokenizing the code anyway)
This small optimization to only check for the static initializer could also be applied separately.