Remove dead code that could slow down enumeration.

The SecurePooledObjectUser struct was previously used as part of a 'thread safe' design for recycling stacks used for enumeration of tree-based collections. But the thread-safety effort was imperfect and removed a while back. The empty struct remained as a simple way to avoid having to make several changes to callers.

Stephen Toub recently was looking over the code and pointed out that this leftover code causes the C# compiler to emit try/finally blocks and call no-op code which may be slowing down enumeration, which is a hot path in many scenarios. So taking time to remove it now seems prudent.
Merge branch 'PerfTuning'