Some work on type mapping loading

- The backend type mapping cache is now a .NET 4.0 ConcurrentDictionary
- Previously the cache was a dictionary that potentially could be read at
  the same time as it was updated (inside the lock). This potential issue
  is gone.