Configure.With now take an instance of the configuration builder

This avoids using lambdas which is easier and more discoverable for new users. It also creates a more intuitive flow.

Old syntax:

```
var config = Configure.With(b=>b.UsePersitence<MyPersistence>());
```

New syntax:

```
var builder = new ConfigurationBuilder();

builder.UsePersitence<MyPersistence>();

var config = Configure.With(builder); 
```
Todo

- [ ] Update doco