Api copy threadsafe demo

Here is another pull request that should not be merged but demonstrates an approach to making the API thread-safe.

The advantages of this idea are that it is really simple; there are about 5 lines of code added, and existing single-threaded code doesn't need to change at all.

The disadvantage is that new parallel code has to call a "NewInstance()" method on the IFluentApi that is similar to what Api.Create does. And you have to use it at just the right time.

Initially this method was called "Clone()" but I changed that, as the name "Clone" gave the impression that it copied the entire state, and that it could/should happen on every fluent operation. But it doesn't bother to copy the state - it just makes a new api instance that a thread can configure with the usual fluent methods. Do not call it after any fluent methods or the current state will be discarded.

A fill-blown state-copying clone could be done, but is a lot more code.