Performance improvements.

* LocalStorage now uses only one dictionary per thread (it used to use one per
thread and per type of data), which improved performance of the tree.

* IShielded implementors will not call Shield.Enlist if they have local data.
They must have already enlisted before creating it. This reduces the load on
the Enlisted HashSet, and makes repeated accesses faster.