Optimistic Concurrency / Row Version

Here is an implementation for optimistic concurrency.

This adds:
- a way to create a row version column or some equivalent with CreateTable
- optimistic concurrency checking for: Update, UpdateAll, Save, SaveAll, DeleteById(object, long)

I've only tested / implemented these changes for SQL Server, SQLite, and Oracle. Do you mind testing / implementing the rest?

Also note this PR includes changes started by @BruceCowan-AI and @JohnKlippenstein-AI