Unittest parameterization implementation

This pull request implements xp-framework/rfc#267 and implements the `@values` annotation for supplying parameters to unittests.

Example:

```php
<?php
  class SqrtTest extends \unittest\TestCase {
    public function cases() {
      return [
        [4, 2.0],
        [9, 3.0],
        [7, 0.5]      // obviously incorrect
      ];
    }

    #[@test, @values('cases')]
    public function verify($num, $result) {
      $this->assertEquals($result, sqrt($num));
    }
  }
?>
```

```sh
$ unittest SqrtTest
[..F]

F unittest.TestAssertionFailed(test= SqrtTest::verify(7, 0.5), time= 0.000 seconds) {
  unittest.AssertionFailedError { expected [0.5] but was [2.6457513110646] using: 'equals' }
    at unittest.TestCase::assertEquals() [line 13 of SqrtTest.class.php]
    at SqrtTest::verify() [line 0 of StackTraceElement.class.php]
    at php.ReflectionMethod::invokeArgs() [line 95 of Method.class.php]
    at lang.reflect.Method::invoke() [line 290 of TestSuite.class.php]
    at unittest.TestSuite::runInternal() [line 508 of TestSuite.class.php]
    at unittest.TestSuite::run() [line 348 of Runner.class.php]
    at xp.unittest.Runner::run() [line 359 of Runner.class.php]
    at xp.unittest.Runner::main() [line 0 of StackTraceElement.class.php]
    at php.ReflectionMethod::invokeArgs() [line 95 of Method.class.php]
    at lang.reflect.Method::invoke() [line 54 of class.php]

 }

FAIL: 3/3 run (0 skipped), 2 succeeded, 1 failed
Memory used: 2242.36 kB (2611.18 kB peak)
Time taken: 0.000 seconds
```