EventStore Protobuf version mismash
Version became ExpectedVersion (explicit)

- Being explicit matters
- Removed InitialVersion in favor of each EventStore's specfic way of
coming up with this value.
- Removed version check (no longer makes sense given the above)
Hit a testing sweet spot!

- Added a little statemachine that allows easy building of a test
specification
- Added those interfaces for extensibility (readability, integration
with a unit testing fx)