New overload for VersionProvider
Renamed CreateToken to NewToken

The rename is for consistency with AdvanceNewToken
Renamed UpdateIfNeeded to Update
fixed a defect in FlagArray
Reworked transactions