Show all possible Compiler paths #2

This Pull Request adds functions to support the language designer, by showing all paths possible from the language definition. Please see the example given or view the unit tests for more examples. Design documentation is only available in english and can be found in the Internal folder.

One example (given the formatting function as used in the unit tests)
```php
<?php
$i = 0;
foreach ($paths as $path) {
    $output[] = ++$i . ': ' .  implode(' > ', $path) .  PHP_EOL;
}
```

Input:
```
%skip space \s
%token hello Hello
%token world world!
%token goodbye Goodbye

#sentence:
	greeting() ::world::

#greeting:
	::hello:: | ::goodbye::
```

Output:
```
1: Hello > world!
2: Goodbye > world!
```