Reduce number of TLS accesses in AllocFreeConcurrentStack<T>

AllocFreeConcurrentStack<T>'s TryAdd and TryTake methods both access a [ThreadStatic] field multiple times in any one invocation.  These repeated TLS accesses might not be optimized away, in which case the overhead is higher than necessary.  This PR caches the [ThreadStatic] into a local which is then what's accessed repeatedly.  In a microbenchmark of enumerating very small collections (e.g. an ImmutableList<int> containing one item), this yielded upwards of a 10% throughput improvement on my machine.
Thanks, @AArnott.  While I understand that sentiment in general, I don't think it applies here.  This code is all in the "System.Collections.Immutable" namespace, which means the compiler is already importing the System namespace, even without the "using System;" line.  As for "using System.Linq;", while in general it's productive to have it imported, I think it's good for a dev to have to pause and think for a moment before using LINQ in a class whose name includes the phrase "AllocFree" ;)  And "using System.Text;", well, I don't have a strong opinion about that one.  All that said, let me know if you still feel strongly about these, and I can put them back if you'd prefer it.