Generic methods

This pull request implements xp-framework/rfc#214 and adds generic methods:

## Declaration

```php
class Arrays extends \lang\Object {

  /**
   * Creates a list 
   *
   * @param  T[] $arg
   * @return util.collections.IList<T>
   */
  #[@generic(self= 'T', return= 'util.collections.IList<T>', params= 'T[]')]
  public static function asList($T, $arg) {
    $list= create("new util.collections.Vector<$T>");
    $list->addAll($arg);
    return $list;
  }
}
```

## Usage

```php
$list= Arrays::{'asList<string>'}(['a', 'b', 'c']);
$list= Arrays::{'asList<string>'}([1, 2, 3]);         // lang.IllegalArgumentException
```

## TODO

* [x] Verify this doesn't conflict with `XPClass::newGenericType()` by excluding methods annotated with `@generic(self= ...)` 
* [x] Add `Method::genericComponents()`
* [ ] Think about further performance improvements to direct invocation
* [ ] Extract placeholder replacement to `GenericTypes` class, test thoroughly
* [x] Think about adding `Method::genericArguments()` and `Method::genericDefinition()` for generated methods.