Add a ConcurrentDictionary cache to back ReflectionExtensions.GetItemType (#2453)
Add a ConcurrentDictionary cache to back ReflectionExtensions.GetItemType (#2453)

* add a ConcurrentDictionary cache to GetItemType

* use passed variable in `.GetOrAdd(TKey, Func<TKey,TValue>)` to avoid closure allocs.

* Fix Nullable Reference type warnings.
MaceWindu/linq2db,linq2db/linq2db,LinqToDB4iSeries/linq2db,LinqToDB4iSeries/linq2db,MaceWindu/linq2db,linq2db/linq2db