StackSamplingProfiler: walk a copy of the stack

Changes the stack walking strategy to copy the stack while the target
thread is suspended, then walk the copy of the stack after the thread
has been resumed. This avoids deadlock on locks taken by
RtlLookupFunctionEntry when walking the actual stack while the target
thread is suspended.

BUG=528129

Review URL: https://codereview.chromium.org/1367633002

Cr-Commit-Position: refs/heads/master@{#353004}
   PlatformThreadId id() const { return id_; }

   PlatformThreadId id() const { return id_; }
