Move logic from Sql UserProvider into base class

This way logic does not need to be re-implemented in other storage
mechanisms.  But the methods moved to the base class are virtual so they
can be overridden if a derived provider needs different implementation
logic.
Added string LexicalIncrement, sequence gen

* LexicalIncrement extension added for strings.
* LexicalAdd extension added for strings, but not yet performant for
medium or large increments
* Added base logic and interfaces for sequence generation.  Not yet
tested or complete.
Create LexicalCharacterSet class, rename old enum

* renamed LexicalCharacterSet enum to LexicalCharacterSetType
* created class LexicalCharacterSet
* moved static variables of character array sets into built in
LexicalCharacter set static singleton properties
* update sequence generation accordingly
* updated tests, but they now fail in some case scenarios.  Need to fix.
More added to LexicalCharacterSet

* Added LexicalCharacterSet.Name
* Added extension method ToCharacterSet taking in a match string and
case indicator (logic recovered from prior commit exclusion from
StringExtensions file.
* updated unit tests - separate increment character tests from selecting
the character set from source string.
LexicalAdd completed for case sensitive adds

also renamed some unit tests.  Added unit tests for LexicalAdd
LexicalAdd completed for case insensitive, tested

* LexicalAdd now handles case sensitive and insensitive adding
correctly.
* Added unit tests for LexicalAdd with alpha and alphanumeric character
sets.
* need testing in the area of adding past the current number of
characters in the list. (Add to string 'zz' and '  zz')
test refinement and increment of 89 bug fixed

* fixed bug, increment 89 now equals 90 instead of 090.
* LexicalIncrement now passes onto LexicalAdd
* added docs
* Added more tests
* refined some test answers based on new rules
SequenceIdGenerator now supports IgnoreCase

* SequenceIdGenerator now supports an IgnoreCase option
* Build 0.10.1 NuGet packages
SequenceIdGenerator improvements

* SequenceIdGenerator if has an Exception from RenewCachedIds when no
data has yet been retrieved and this is the first attempt, then it will
attempt to insert the sequence schema definition before the next retry.
* SequenceIdGenerator has added Logging
* IOptimisticSyncStore now returns the ConcurrencyKey along with the
data retrieved, and then expects that to be included with the TryWrite
call to update the data value.
* Added OptimisticSyncData class to hold the ConcurrencyKey, Data, and
TableName used by the IOptimisticSyncStore.
* Generated this as release 0.10.3 (nuspec files and version numbers are
incremented)
Fixed created date bug saving auth history

And released as internal NuGet package version 0.10.5
Fix bug - stop skip of first reserved sequence id
security managers use providerResolver, cleanup

* HashManager, UserManger, SecurityContextManager now all use
ProviderResolver<T> to store their provider collections to reuse the
same collections as code configuration users, and users of
ProviderResolver.  The collection point to the same reference, keeping
them in sync.
* other code cleanup per Resharper - not functional changes
NuGet release checkpoint 0.10.6.30719

only version number changes in this commit.  See prior changesets for
contents of release.
fix ProviderResolver.Get when missing type
NuGet release checkpoint 0.10.7.30719
code config use case no longer attempts file load

* ProviderResolver - Code configuration use case no longer tries to load
configuration from file.
* ProviderCollection - code cleanup - no functional changes
NuGet release checkpoint 0.10.8.30719

also a couple code cleanup items per Resharper
Sha2HashProvider can now be used in code config

* Sha2HashProvider - added a constructor taking name for use in code
configuration
* NuGet release checkpoint 0.10.9.30719
LexicalAdd reduced occurrence of throw

Originally LexicalAdd threw if any character in the source string did
not exist in the character set.  It now only throws the exception if a
character being incremented is not in the character set.
NuGet release checkpoint 0.10.10

* see prior commits since last release for changes.