XP Framework: Generic methods

Implement generic methods as described in xp-framework/rfc#214 for XP Framework:

Current way
--

```php
<?php
  class Storage extends Object {

    public function getEntry($name) {
      return $this->readEntry($name);
    }
  }

  // Usage:
  $entry= cast($storage->getEntry($name), 'com.example.StoredObject');
?>
```

New way
--

```php
<?php
  class Storage extends Object {
    #[@generic(self= 'T', return= 'T')]
    public function getEntry«»($T, $name) {
      return $T->cast($this->readEntry($name));
    }
  }

  // Usage:
  $entry= $storage->{'getEntry<com.example.StoredObject>'}($name);
?>
```

The `getEntry()` method has access to the given type, and can perform more than just casting.