Add overload to Assist's CreateSet<T> accepting Func<TableRow,T>

When loading a list of objects from a table using SpecFlow.Assist's ```CreateSet<T>``` extension method, we may wish to use some custom transformation to populate a subset of columns without having to explicitly map all remaining columns.

For example, we may parse a comma-delimited string to a List<>, or standardize the format of a phone number for later comparison.

To do this, we add an overload to the ```CreateSet<T>``` extension method which, instead of a ```Func<T>``` parameter to create each instance, accepts a ```Func<TableRow,T>``` parameter instead.

 For example:
```csharp
var table = new Table("Ints", "String1", "String2", "etc...", "StringN")
var set = table.CreateSet<Foo>(row => 
        new Foo { IntList = row.GetString("Ints").Split(',').ToList() }
    );
```

The Ints column is used to populate Foo.IntList, and String1-N are handled in the usual manner by CreateSet.

This does require the source and target columns for the transformation to not overlap, as otherwise the CreateSet method will overwrite the value populated by the Func with the value in the table.