Multiple step collections

Augment Dullard so that it supports multiple sets of steps. Running `dullard` with the following `.dullfile`
```javascript
{
    "steps" : {
        "steps-a" : [
            "one",
            "two",
            "three"
        ],
        
        "steps-b" : [
            "four",
            "five"
        ],
        
        "steps-c" : "six",
        
        "default" : [
            "steps-a",
            "steps-b",
            "steps-c"
        ]
    }
}
```
would result in the steps executing in this order: `one`, `two`, `three`, `four`, `five`, `six`

It still of course supports just an array of steps.

```javascript
{
    "steps" : [
        "one",
        "two",
        "three"
        "four",
        "five"
        "six"
    ]
}
```

This PR also sneaks in support for single task steps not wrapped in an array.

```javascript
{
    "steps" : {
        "fooga" : "wooga"
    }
}
```