Managed thread id fix (case 601660)

Fixes managed thread ID allocation resetting on domain reload, and allocating the same ID to both the main thread and the next thread to request an ID, by moving the next-thread-ID counter and increment to native code.

Also add an audit entry for System.Threading.Thread.GetNewManagedID to indicate that it's SecuritySafeCritical, so that untrusted code can get to the icall OK.
I think so - the old counter was a static int with no value specified, and there were no other references to it, so I think it was defaulting to 0.