First Attempt To Address Issue #164

Issue #164

In order to be able to run the acceptance tests across all implementations without changing configuration, I converted the persistence acceptance tests to XUnit & made a test project per implementation. 

I created a PersistenceAcceptanceTests.cs file that gets linked in each implementation test project. There's a partial class in this file that each implementation can override to setup their persistence engine.

I didn't want to change the acceptance tests as much as possible, so I implemented a custom TestClassCommand that uses the same BDD lingo & uses the same test class instance for each Fact in the test class.

Pros:
The acceptance tests can be shared across implementations without much copy / paste.

Cons:
A separate project is required per implementation that you want to run the "core" acceptance tests for. This means that a separate project would be required per dialects of SQL, for instance.