Fix node groupnames

This PR adds support for using task name that include group names, like this:

```php
task('a:b:c', function () { });
```

This will now automatically create the nodes named `a`, `a:b` and `a:b:c`. So this is equivalent to the longer form:

```php
group('a', function () {
  group('b', function () {
    task('c', function () { });
  });
});
```

And equivalent to any of these mixed forms:

```php
group('a:b', function () {
  task('c', function () { });
});
```

or

```php
group('a', function () {
  task('b:c', function () { });
});
```