Make VersionedKeyValSource validate explicitly provided versions

1) Added a test for this behavior. Running the test before the fix:
```
[info] + A TypedWriteIncrementalJob should
[info]   + Outputs must be as expected
[info] + A MoreComplexTypedWriteIncrementalJob should
[info]   + Outputs must be as expected
[error] x A VersionedKeyValSource should
[error]   x Validate that explicitly provided versions exist
[error]     java.lang.IllegalArgumentException: Version 103 does not exist. Currently available versions are: [102, 101, 100] should have been thrown (VersionedKeyValSourceTest.scala:92)
```

2) Added the fix, tests pass